VB 2005 Toolstrip动态添加菜单
2014-01-25 02:22
507 查看
一直以来,都喜欢用第三方控件,毕竟功能要强大得多,不过,正因为如果,导致俺的程序中招,即:infragistic 2006的WinGrid和Toolbar有冲突,花了几十个小时,才查出原因,晚上试了一下,windows下的Toolstrip也能动态添加菜单,好吧,虽然还是不好用,可是,好歹能解决问题,也可以少用一个第三方控件。
另,为什么不用最新的控件?因为,俺用的是正版的好不好?虽然我啥都是用盗版的,不过,老板布置的工作,东西是给用户用的,不敢用盗版。老板也问了,要不要换成最新的?不过,我的知识还停留在VB2005,现在虽然升级到VS2010,可是可是,我用的还是所有都是2005呀。
1. 在Form上添加一个Toolstrip控件
2. 动态添加菜单的代码。
A.前提:因为,我做的工具栏的菜单项都只有图标和文字,而且,只有两类,一类是按钮,即ToolStripButton,一类是分隔栏,即ToolStripSeparator
B. 为了让按钮有图标,还要先给Form添加一个ImageList控件,并把所有用到的图标放里面。并用代码将其作为ToolStrip的图标列表。
代码: oToolStrip.ImageList = ilImageList
C. 为了让程序能处理动态添加的按钮的选择操作,即Click事件,还要先添加一个过程,因为Click事件有两个参数,你在添加这个过程时,也要包含一样的参数,因为,你的工具栏通常不可能只有一个按钮,所以,可以使用CallByName进行调用不同的过程来完成对应的功能,用CallByName时,被调用的过程或者函数,要设置成Public属性。直接用Select Case进行分支也行,看具体情况,此时就只要设置成Private。
代码:
Private Sub DoToolstripClick(ByVal sender As Object, ByVal e As System.EventArgs)
Dim oTSItem As ToolStripItem = sender
CallByName(Me, "Do" & oTSItem.Name, CallType.Method, Nothing)
End Sub
D.添加按钮的代码,要注意的是,ImageKey指定ImageList里面的图标时,要用图标的全名,即包含扩展名:
Dim oTSButton As ToolStripButton
oTSButton = New ToolStripButton
With oTSButton
.Name = "First"
.ImageKey = "First.BMP"
.Text = "First"
.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText
End With
AddHandler oTSButton.Click, AddressOf TestIt
oToolStrip.Items.Add(oTSButton)
E.添加分隔栏的代码:
Dim oTSSeperator As ToolStripSeparator
oTSSeperator = New ToolStripSeparator
oToolStrip.Items.Add(oTSSeperator)
另,为什么不用最新的控件?因为,俺用的是正版的好不好?虽然我啥都是用盗版的,不过,老板布置的工作,东西是给用户用的,不敢用盗版。老板也问了,要不要换成最新的?不过,我的知识还停留在VB2005,现在虽然升级到VS2010,可是可是,我用的还是所有都是2005呀。
1. 在Form上添加一个Toolstrip控件
2. 动态添加菜单的代码。
A.前提:因为,我做的工具栏的菜单项都只有图标和文字,而且,只有两类,一类是按钮,即ToolStripButton,一类是分隔栏,即ToolStripSeparator
B. 为了让按钮有图标,还要先给Form添加一个ImageList控件,并把所有用到的图标放里面。并用代码将其作为ToolStrip的图标列表。
代码: oToolStrip.ImageList = ilImageList
C. 为了让程序能处理动态添加的按钮的选择操作,即Click事件,还要先添加一个过程,因为Click事件有两个参数,你在添加这个过程时,也要包含一样的参数,因为,你的工具栏通常不可能只有一个按钮,所以,可以使用CallByName进行调用不同的过程来完成对应的功能,用CallByName时,被调用的过程或者函数,要设置成Public属性。直接用Select Case进行分支也行,看具体情况,此时就只要设置成Private。
代码:
Private Sub DoToolstripClick(ByVal sender As Object, ByVal e As System.EventArgs)
Dim oTSItem As ToolStripItem = sender
CallByName(Me, "Do" & oTSItem.Name, CallType.Method, Nothing)
End Sub
D.添加按钮的代码,要注意的是,ImageKey指定ImageList里面的图标时,要用图标的全名,即包含扩展名:
Dim oTSButton As ToolStripButton
oTSButton = New ToolStripButton
With oTSButton
.Name = "First"
.ImageKey = "First.BMP"
.Text = "First"
.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText
End With
AddHandler oTSButton.Click, AddressOf TestIt
oToolStrip.Items.Add(oTSButton)
E.添加分隔栏的代码:
Dim oTSSeperator As ToolStripSeparator
oTSSeperator = New ToolStripSeparator
oToolStrip.Items.Add(oTSSeperator)
相关文章推荐
- VB.NET2005 动态添加 ToolStrip 控件
- vb.net 用MenuStrip动态创建菜单,怎样添加子菜单,并增加click事件
- vb.net 2005 动态加载菜单及反射+权限
- 在VB中动态添加弹出菜单
- VB.net 动态添加菜单响应单击事件
- vb.net2005动态添加网页控件的事件
- VB.NET2005 在项目中添加App.config的配置
- Delphi动态添加菜单
- 添加弹出菜单,并动态设置菜单项变灰
- VB运行时动态注册添加控件的方法
- mtk动态添加菜单
- 在Winform中菜单动态添加“最近使用文件”
- C++ MFC中的CMenu---动态添加菜单/菜单项
- GridView动态添加模板列(VB.NET版)
- 动态添加删除Spinner菜单项
- MFC动态添加菜单并响应,优缺点(响应函数不能动态添加)
- 【原创】vb.net 动态控件 事件添加
- 如何动态添加菜单/菜单项、子菜单、右键菜单
- MFC 单文档中动态添加菜单项和响应菜单事件
- VB编写ActiveX控件时动态添加控件到顶层UserControl