|
vb2008菜单制作(绝对经典,代码直接从编辑环境中复制,运行成功)
一、VB2008与VB6中菜单的制作极不相同
在Vb6中,我们通常中窗口的菜单项中选择 编辑菜单,这样Vb6本身就会向窗口中添加一个菜单条,我们在编辑菜单中可以编辑多
级菜单,也可以在程序中加载菜单数组(但必须有一个菜单源:index=0的菜单项);菜单若组织多级菜单时,就变得异常困难,
我们必须先把这个菜单事先编辑,若这个多级预先未确定,那么vb6就无能为力了。
在Vb2008中就简单多了,解决多级菜单的问题也易如反掌;在vb6中,可以程序加载菜单条扩展任意级的菜单项。
二、设置菜单运行程序极不相同
在VB6中,当菜单名称(name属性)不同时,其不能执行相同的程序段(或许可以用一个公用过程,但调用这个公用过程之前必
须有一个不同的菜单过程去调用这个过程);
在vb2008中,加载菜单便可以直接指定其运行的程序段,无须通过不同的过程去调用公用过程。
三、vb2008与vb6中菜单项的区分
由于vb2008不支持控件数组,所以控件比vb6都少了一个index属性
vb6可以通过index,name,caption,tag,tooltiptext区别不同的菜单控件;
vb2008只可以通过name,text,tag,tooltiptext区别不同的菜单控件。
四、vb2008不支持菜单控件数组
VB2008不支持菜单控件数组,所以任何菜单项的name属性必须不相同;而vb6中的菜单控件可以有相同的name属性,通过
index属性区分;
vb6由于控件数组的影响,相同菜单名称的菜单必须位于同一个父级菜单下,预执行同一段程序代码;
vb2008由于不受控件数组的影响,菜单名称各不相同(也可以不命名菜单),可以通过加载时指定不同的执行程序段;
五、下面给出一段程序代码,希望能够起到抛砖引玉的功效(前面说到的一些vb2008的特殊功能并未全部演示,请广大的读者自
行训练)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Ms As ToolStrip = New ToolStrip '定义一个菜单条,并将其显示到窗口中
Me.Controls.Add(Ms)
Ms.Dock = DockStyle.Right '设置此菜单条显示的位置,此让其显示在右侧,默认停靠在顶部
Dim cMs As ToolStripMenuItem, pMs As ToolStripMenuItem
pMs = New ToolStripMenuItem("文件", Nothing, New EventHandler(AddressOf Menuclick)) '定义 文件 菜单,设置其
执行过程为 Menuclick
Ms.Items.Add(pMs)
pMs.Name = "MainRoot0"
pMs = New ToolStripMenuItem("编辑") '定义 编辑 菜单
Ms.Items.Add(pMs)
pMs.Name = "MainRoot1"
Dim i As Short
For i = 1 To 9
cMs = New ToolStripMenuItem("第" & i & "个菜单", Nothing, New EventHandler(AddressOf Menuclick)) '定义 9
个子菜单,设置其执行过程为 Menuclick
cMs.Name = "Sub_" & i
cMs.Tag = i
pMs.DropDownItems.Add(cMs)
Next i
End Sub
Public Sub Menuclick(ByVal Sender As ToolStripMenuItem, ByVal e As System.EventArgs)
Select Case Sender.Name
Case "MainRoot0"
MsgBox("这个是主菜单哟,给我个过程,我也会做事情的")
Case "Sub_1" To "Sub_9"
MsgBox("我的名字叫:" & Sender.Name & "(你选择的是: " & Sender.Text & ")")
End Select
End Sub (责任编辑:admin) |