vb.net中菜单项 vb 菜单项

如何用VB.NET设置菜单项的热键不清楚热键和快捷键是什么区别
1.如果你是指Chrl+S这样的快捷键,可以设置ShortCutKeys属性,属性窗口就有可视化编辑器 。
2.如果你是指"保存(S)",其中s有下划线这样的用Alt+字母来访问的设置,应该在菜单项的Text属性中使用符号 。符号后面的字母将被作为快速访问字符,显示的时候不会被显示出来,而字母会自动加上下划线 。比如"保存(s)" 。
3.和选中标记有关的属性有两个
CheckOnClick在菜单项上单击时是否改变Checked属性
Checked设置/获取 菜单项是否被选中
4.设置菜单项的Enabled属性为False
vb.net 动态菜单如何在指定位置添加新项,并添加单击事件?常见事件有鼠vb.net中菜单项的标单击、双击、移动vb.net中菜单项;
有键盘的键按下、键松开、按键;
有窗体加载、窗体卸载等等 。
vb.net用变量设置菜单属性包括子菜单,例如:菜单名.Enabled=false,替换成 , 菜单变不清楚热键和快捷键是什么区别
1.如果你是指Chrl+S这样vb.net中菜单项的快捷键vb.net中菜单项,可以设置ShortCutKeys属性vb.net中菜单项,属性窗口就有可视化编辑器 。
2.如果你是指"保存(S)",其中s有下划线这样的用Alt+字母来访问的设置,应该在菜单项的Text属性中使用符号 。符号后面的字母将被作为快速访问字符,显示的时候不会被显示出来,而字母会自动加上下划线 。比如"保存(s)" 。
3.和选中标记有关的属性有两个
CheckOnClick在菜单项上单击时是否改变Checked属性
Checked设置/获取 菜单项是否被选中
4.设置菜单项的Enabled属性为False
VB.NET菜单设计初级入门[3]五.绘制个性化菜单
先执行以下操作步骤 下列步骤是通过菜单编辑器设计一个简单的菜单 为后面重新绘制做基础
启动Visual Studio Net
选择菜单【文件】|【新建】|【项目】后 弹出【新建项目】对话框
将【项目类型】设置为【Visual Basic项目】
将【模板】设置为【Windows应用程序】
在【名称】文本框中输入【自己画菜单】
在【位置】的文本框中输入【E:\VS NET项目】 然后单击【确定】按钮 这样在 E:\VS NET项目 目录中就产生了名称为 自己画菜单 的文件夹 并在里面创建了名称为 自己画菜单 的项目文件
把Visual Studio Net的当前窗口切换到【Form vb(设计)】窗口 并从【工具箱】中的【Windows窗体组件】选项卡中往Form 窗体中拖入下列组件
一个MainMenu组件 名称为 MainMenu
选中 MainMenu 组件 单击鼠标右键 在弹出的菜单中选择 编辑菜单 并按照图 所示界面设计菜单
图 【自己画菜单】项目设计界面之一
此时保存上述步骤 并单击快捷键F 则得到图 所示界面
图 【自己画菜单】运行界面之一
这样通过菜单编辑器就完成了一个非常普通的菜单 下面就对此菜单进行改造 在改造之前 要先设定项目中的三个MenuItem类实例的OwnerDraw属性值为 True 因为只有此属性值为 True 才会触发绘制菜单时所需要的DrawItem事件和MeasureItem事件 之后再在上面项目的基础上执行下一步操作
把Visual Stuido Net的当前窗口切换到Form vb的代码编辑窗口 并在InitializeComponent过程之后添加下列代码 下列代码是绘制 文件 菜单项 其作用是改变 文件 菜单项的字体 大小和菜单项的 其具体的绘制方法请参考下列代码中的注释
Private Sub MenuItem _DrawItem ( ByVal sender As Object ByVal e As System Windows Forms DrawItemEventArgs ) Handles MenuItem DrawItem Dim rfBound As RectangleF = New RectangleF ( e Bounds X e Bounds Y e Bounds Width e Bounds Height )根据DrawItemEventArgs参数获得菜单项矩形区域并存储到RectangleF类型实例中 Dim rfBound As Rectangle = New Rectangle ( e Bounds X e Bounds Y e Bounds Width e Bounds Height )根据DrawItemEventArgs参数获得菜单项矩形区域并存储到Rectangle类型实例中Rectangle类型实例和RectangleF类型实例差不多 但在后面代码中绘制菜单的函数是有区别的e Graphics FillRectangle(New SolidBrush(Color LightGreen) rfBound) 以LightGreen色彩填充MenuItem 菜单项对应的矩形区域 Dim s As MenuItem = CType ( sender MenuItem ) Dim s As String = s Text获得MenuItem 菜单项的名称 Dim sfTemp As StringFormat = New StringFormat ( ) sfTemp Alignment = StringAlignment Center设定要画的菜单名称的对齐方式 中间对齐 e Graphics DrawString ( s New Font ( 宋体 FontStyle Bold ) New SolidBrush ( Color Black ) rfBound sfTemp )以中间对齐方式 指定字体 大小 在指定的矩形区域重画菜单 If e State = ( DrawItemState NoAccelerator Or DrawItemState Selected ) Then 根据菜单项的当前绘制状态来绘制菜单项 e Graphics FillRectangle ( New SolidBrush ( Color LightYellow ) rfBound ) 对菜单项所在的矩形区域进行色彩填充 e Graphics DrawString ( s New Font ( 宋体 FontStyle Bold ) New SolidBrush ( Color Black ) rfBound sfTemp )对菜单项名称绘制 End If e DrawFocusRectangle ( )在 DrawItemEventArgs参数得到矩形范围内绘制聚焦框e Graphics DrawRectangle ( New Pen ( New SolidBrush ( Color Black ) ) rfBound )对菜单项的矩形区域绘制矩形框End Sub

推荐阅读