如何在在窗体中得到菜单的name属性值
如何才能载窗体中通过以下循环方式:
Dim menu As MenuItem
dim frm as new frmmain()'frmmain是包含菜单的主窗体,这段代码在其他窗'体中编写
For Each menu In frm.MainMenu.MenuItems(0).MenuItems
???在这里想通过menu来得到这个menuitem所代表的菜单项的name属性??
Next
问题点数:40、回复次数:2Top
1 楼Montaque(每天回答两个问题)回复于 2003-09-04 08:10:44 得分 40
呵呵,MenuItem没有name属性,你可以判断Menu的Text属性。或者你可以自定义一个MenuItemEx,继承menuitem,加上一个属性。
Public Class MenuItemEx
Inherits MenuItem
Private _PathName As String '收藏家的目录,多一个属性用于记录菜单象的路径。
Sub New()
MyBase.New()
End Sub
Sub New(ByVal text As String)
MyBase.New(text)
End Sub
Sub New(ByVal text As String, ByVal onClick As System.EventHandler)
MyBase.New(Text, onClick)
End Sub
Public Property PathName() As String
Get
Return _PathName
End Get
Set(ByVal Value As String)
_PathName = Value
End Set
End Property
End Class
Top
2 楼Montaque(每天回答两个问题)回复于 2003-09-04 08:11:39 得分 0
我整理的一个生成ie的Favorites的菜单程序。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myFavouriteMenu As New MenuItemEx("Favouriate Menu")
Dim MyMainMenu As New MainMenu
TranvsFavouriteToAMenu(System.Environment.GetFolderPath(Environment.SpecialFolder.Favorites), myFavouriteMenu)
MyMainMenu.MenuItems.Add("Test").MenuItems.Add(myFavouriteMenu)
Me.Menu = MyMainMenu
End Sub
Private Sub TranvsFavouriteToAMenu(ByVal sPath As String, ByVal ParentMenuItem As MenuItemEx)
'处理文件
Dim sDir As String
For Each sDir In System.IO.Directory.GetDirectories(sPath)
Dim MenuItem1 As New MenuItemEx(sDir.Substring(sDir.LastIndexOf("\") + 1)) '.
ParentMenuItem.MenuItems.Add(MenuItem1)
TranvsFavouriteToAMenu(sDir, MenuItem1)
Next
Dim sFile As String
For Each sFile In System.IO.Directory.GetFiles(sPath, "*.url")
Dim MenuItem1 As New MenuItemEx(sFile.Substring(sFile.LastIndexOf("\") + 1, sFile.LastIndexOf(".") - sFile.LastIndexOf("\") - 1), AddressOf MenuItem_Click)
MenuItem1.PathName = sFile.Substring(0, sFile.LastIndexOf("\") + 1)
ParentMenuItem.MenuItems.Add(MenuItem1)
Next
End Sub
'执行连接
Private Sub MenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
'
Dim MenuItem1 As MenuItemEx = CType(sender, MenuItemEx)
Dim sUrl As String
'get the website
Dim fs As New System.IO.FileStream(MenuItem1.PathName & MenuItem1.Text & ".url", IO.FileMode.Open)
Dim sr As New System.IO.StreamReader(fs)
sr.ReadLine()
sUrl = sr.ReadLine()
sUrl = sUrl.Substring(sUrl.ToUpper.IndexOf("HTTP://")) '这里忽略其他协议,比如ms-help
System.Diagnostics.Process.Start(sUrl)
End Sub
End Class
Public Class MenuItemEx
Inherits MenuItem
Private _PathName As String '收藏家的目录,多一个属性用于记录菜单象的路径。
Sub New()
MyBase.New()
End Sub
Sub New(ByVal text As String)
MyBase.New(text)
End Sub
Sub New(ByVal text As String, ByVal onClick As System.EventHandler)
MyBase.New(Text, onClick)
End Sub
Public Property PathName() As String
Get
Return _PathName
End Get
Set(ByVal Value As String)
_PathName = Value
End Set
End Property
End Class
Top



