Professional Documents
Culture Documents
menuItem1.Text = "File"
menuItem2.Text = "Edit"
' Add two MenuItem objects to the MainMenu.
mainMenu1.MenuItems.Add(menuItem1)
mainMenu1.MenuItems.Add(menuItem2)
menuItem1.Text = "&File"
menuItem2.Text = "&Edit"
End Sub
-
Public Sub AddMenuAndItems()
Dim mnuFileMenu as new MainMenu
Me.Menu = mnuFileMenu
Dim myMenuItemFile as New MenuItem("&File")
Dim myMenuItemNew as New MenuItem("&New")
mnuFileMenu.MenuItems.Add(myMenuItemFile)
myMenuItemFile.MenuItems.Add(myMenuItemNew)
myMenuItemNew.MenuItems.Add(myMenuItemFolder)
mnuFileMenu.MenuItems.Add("Save &As")
End Sub
----------------
MenuItem.Click Event
Public Delegate Sub EventHandler( _
ByVal sender As Object, _
ByVal e As EventArgs _
)
---------------------------
Public Sub CloneMyMenu()
' Determine if mainMenu1 is currently hosted on the form.
If Not (mainMenu1.GetForm() Is Nothing) Then
' Create a copy of the MainMenu that is hosted on the form.
Dim mainMenu2 As MainMenu = mainMenu1.CloneMenu()
' Set the RightToLeft property for mainMenu2.
mainMenu2.RightToLeft = RightToLeft.Yes
End If
End Sub
Bạn có thể liên kết một điều kiểm với một menu ngữ cảnh bằng cách thiết lập thuộc tính
ContextMenu của điều kiểm. Tuy nhiên, đây chỉ là một thuận lợi—để hiển thị menu ngữ cảnh, bạn
phải thu lấy menu và gọi phương thức Show của nó. Thông thường, bạn hiện thực logic này trong
phương thức thụ lý sự kiện MouseDown.
Thực ra, logic dùng để hiển thị menu ngữ cảnh hoàn toàn giống nhau, không quan tâm đến điều
kiểm gì. Mọi điều kiểm đều hỗ trợ thuộc tính ContextMenu (được thừa kế từ lớp cơ sở Control),
nghĩa là bạn có thể dễ dàng viết được một phương thức thụ lý sự kiện chung để hiển thị các
menu ngữ cảnh cho tất cả các điều kiểm.
Ví dụ, xét một form gồm một Label, một PictureBox, và một TextBox. Bạn có thể viết một
phương thức thụ lý sự kiện MouseDown cho tất cả các đối tượng này. Đoạn mã dưới đây kết nối
tất cả các sự kiện này vào một phương thức thụ lý sự kiện tên là Control_MouseDown:
if (e.Button == MouseButtons.Right) {
if (ctrl.ContextMenu != null) {
đệ quy duyệt toàn bộ các menu trong 1 MENUTRIP ( bất kể có bao nhiêu cấp ), bạn có thể sửa
đổi đoạn code này để tạo TREE trong tree view hay GRID , tham số DT là 1 datatable chứa các
menu mà người dùng được phép truy cập, nếu không tìm thấy thì menu đó sẽ bị disable
Đoạn mã của mình là dùng đệ quy để duyet toàn bô các item trong menu dùng để :
- Vẽ cây phân quyền ( tree view hoặc dùng c1 flexgrid )
- Duyet menu để phân quyen - thường là ẩn menu đó đi
sửa đổi 1 chút cho khớp với dữ liệu của bạn .
Chỉ áp dụng cho menutrip ( các menu của 3rd party khác thì cần sửa lại code 1 chút )