vbnet设计 vbnet常用控件介绍

用VB.NET设计各种形状的窗体界面二

结合上一节介绍的方法 通过Visual Basic Net的菜单设计器 按照图 和图 所示的菜单结构设计菜单   图 【MDI编程】项目的菜单结构之一   图 【MDI编程】项目的菜单结构之二 在利用菜单设计器设计完菜单后 分别在窗体中双击 新建 退出 层叠显示 横行平铺 纵向平铺 和 排列图标 菜单项 这样Visual Basic Net会在Form vb文件中分别产生这些菜单项的Click事件对应的处理代码 设定Form 的 IsMdiContainer 属性值为 True 这把Form 窗体定义为MDI窗体容器 这一步设置是后面编程的基础 当设置此属性值后 Form 的窗体也发生了改变 图 是设置此属性后的窗体模样   图 把Form 窗体设置为MDI窗体容器后的模样 选中图 中的 窗口 菜单项 并设置此菜单项的 MdiList 属性值为 True 其作用是当程序运行后 如果新建了一个MDI窗体 就会在 窗口 菜单项后 自动加入一个以新建MDI窗体名称命名的菜单项 如果新建了多个MDI窗体 则会在 窗口 菜单项后 会加入以这些MDI窗体名称命名的菜单项 当MDI窗体被关闭 那些以此MDI窗体命名的菜单项也会自动删除 具体可图 所示 把Visua Basic Net的当前窗口切换到Form vb的代码编辑窗口 并在定义Form 中组件的代码区加入下列代码 下列代码是定义一个变量 此变量用以统计程序中新建MDI窗体的数量 Private iFormCount As Integer = 用下列代码替换Form vb中的MenuItem 的Click事件对应的处理代码 MenuItem 即为图 中的 新建 菜单项 下列代码的作用是在新建一个MDI窗体 Private Sub MenuItem _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles MenuItem ClickDim frmTemp As Form = New Form ( ) 新建一个窗体frmTemp MdiParent = Me 为当前创建的窗体设置MDI父窗体frmTemp Text = MDI窗体 + iFormCount ToString ( )iFormCount = iFormCount + frmTemp Show ( ) 把此MDI窗体显示出来End Sub 用下列代码替换Form vb中的MenuItem 的Click事件对应的处理代码 MenuItem 即为图 中的 退出 菜单项 下列代码的作用是退出应用程序 Private Sub MenuItem _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles MenuItem ClickApplication Exit ( ) 退出应用程序End Sub 用下列代码替换Form vb中的MenuItem 的Click事件对应的处理代码 MenuItem 即为图 中的 层叠显示 菜单项 下列代码的作用是层叠排列窗体中的所有MDI窗体 Private Sub MenuItem _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles MenuItem ClickMe LayoutMdi ( MdiLayout Cascade ) 层叠排列窗体中的所有MDI窗体End Sub 用下列代码替换Form vb中的MenuItem 的Click事件对应的处理代码 MenuItem 即为图 中的 水平平铺 菜单项 下列代码的作用是水平平铺窗体中的所有MDI窗体 Private Sub MenuItem _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles MenuItem ClickMe LayoutMdi ( MdiLayout TileHorizontal ) 水平平铺窗体中的所有MDI窗体End Sub 用下列代码替换Form vb中的MenuItem 的Click事件对应的处理代码 MenuItem 即为图 中的 垂直平铺 菜单项 下列代码的作用是垂直平铺窗体中的所有MDI窗体 Private Sub MenuItem _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles MenuItem ClickMe LayoutMdi ( MdiLayout TileVertical ) 垂直平铺窗体中的所有MDI窗体End Sub 用下列代码替换Form vb中的MenuItem 的Click事件对应的处理代码 MenuItem 即为图 中的 排列图标 菜单项 下列代码的作用是窗体中的所有MDI窗体排列图标 Private Sub MenuItem _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles MenuItem ClickMe LayoutMdi ( MdiLayout ArrangeIcons ) 窗体中的所有MDI窗体排列图标End Sub至此【MDI编程】项目的全部工作就完成了 图 图 和图 是程序运行后的界面   图 【MDI编程】运行界面之一   图 【MDI编程】运行界面之二 图 【MDI编程】运行界面之三 此时我们注意到图 所示的 窗口 菜单中增加许多子菜单 而在程序设计时 并没有处理这些功能的代码 这是由于第十一步中设置 窗口 菜单项的 MdiList 属性值为 True 造成的 可见正确的设置组件的属性值有时的确能够代替烦杂的代码编写工作 五 总结 本文主要内容有二个 其一是介绍的在Visual Basic Net定制不规则窗体的实现方法 在Visual Basic Net中创建不规则窗体主要使用的是Region类和GraphicsPath类 GraphicsPath主要是绘制窗体的形状 Region主要是以GraphicsPath来构建窗体 结合本文的实现思路和具体方法 我想对于其他形状的窗体 在掌握GraphicsPath类提供的使用方法的前提下 加上对所要创建不规则窗体的规划设计 用Visual Basic Net实现起来应该不算很困难 本文的另外一个主要内容就是介绍在Visual Basic Net编写MDI应用程序的基本过程 技巧和注意事项 通过本文的介绍可见Visual Basic Net的MDI编程并没有什么复杂的地方 只需了解一些对MDI窗体处理的方法及其调用方式 当然更重要的是要了解并掌握某些组件的针对MDI的属性及其设置方式 lishixinzhi/Article/program/net/201311/11698

创新互联-专业网站定制、快速模板网站建设、高性价比成县网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式成县网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖成县地区。费用合理售后完善,10多年实体公司更值得信赖。

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

操作完成后 保存修改 此时再单击快捷键F 运行程序 可得到如图 所示的界面

图 【自己画菜单】运行界面之二

可见绘制的 文件 菜单项并没有完全显示出来 并且后面的菜单项也没有显示 这是因为菜单项的显示区域并没有设定 而缺省的空间又不能完全显示造成的 设定菜单项的显示区域大小是通过MeasureItem事件来完成的 具体操作是在MenuItem 的DrawItem事件后添加下列代码 下列代码是是定义MenuItem 的MeasureItem事件 在此事件中设定菜单项的宽度(当然也可以设定高度等)

Private Sub MenuItem _MeasureItem ( ByVal sender As Object ByVal e As System Windows Forms MeasureItemEventArgs ) Handles MenuItem MeasureItem e ItemWidth =   设定菜单项的宽度End Sub

保存上述修改后 单击快捷键F 运行程序可得到图 所示界面

图 【自己画菜单】运行界面之三

可见 文件 菜单项就算绘制出来了 由于其他菜单项没有绘制处理 所以也未显示 其他菜单项的绘制方法和 文件 菜单项的绘制方法基本相似 以下是在上述完成的基础上 对其他菜单项进行绘制 从而得到图 所示菜单的具体实现步骤

图 【自己画菜单】运行界面之四

在Form vb中的MenuItem 的MeasureItem事件处理程序之后添加下列代码 下列代码是定义MenuItem 的DrawItem事件 其功能是对 新建 菜单项重新绘制

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 LightGray ) rfBound )  Dim s As MenuItem = CType ( sender MenuItem )  Dim s As String = s Text  获得菜单项对应的文本名称 Dim sfTemp As StringFormat = New StringFormat ( )  sfTemp Alignment = StringAlignment Center  设定文本在矩形区域的对齐方式 sfTemp LineAlignment = StringAlignment Center Dim rcText As RectangleF = rfBound rcText Width =  e Graphics DrawString ( s New Font ( 宋体 ) New SolidBrush ( Color Blue ) rcText sfTemp )  e Graphics DrawRectangle ( New Pen ( New SolidBrush ( Color LightGray ) ) rfBound )  If e State = ( DrawItemState NoAccelerator Or DrawItemState Selected ) Thene Graphics FillRectangle ( New SolidBrush ( Color LightYellow ) rfBound ) e Graphics DrawString ( s New Font ( 宋体 FontStyle Bold Or FontStyle Underline ) New SolidBrush ( Color Red ) rcText sfTemp ) e Graphics DrawRectangle ( New Pen ( New SolidBrush ( Color Black ) ) rfBound ) e DrawFocusRectangle ( )  End IfEnd Sub

MenuItem 的DrawItem事件处理代码之后添加下列代码 下列代码是定义MenuItem 的MeasureItem事件 在此事件中实现设定 新建 菜单项的长度和高度

Private Sub MenuItem _MeasureItem ( ByVal sender As Object ByVal e As System Windows Forms MeasureItemEventArgs ) Handles MenuItem MeasureItem e ItemWidth =   设定菜单项的宽度 e ItemHeight =   设定菜单项的高度End Sub

在完成上述操作步骤后 再在MenuItem 的MeasureItem事件处理程序之后添加下列代码 下列代码是定义MenuItem 的DrawItem事件 其功能是对 打开 菜单项重新绘制

Private Sub MenuItem _DrawItem ( ByVal sender As Object ByVal e As System Windows Forms DrawItemEventArgs ) Handles MenuItem DrawItemDim 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类型实例差不多 但在后面代码中绘制菜单的函数是有区别的Dim s As MenuItem = CType ( sender MenuItem ) Dim s As String = s TextDim sfTemp As StringFormat = New StringFormat ( ) sfTemp Alignment = StringAlignment CentersfTemp LineAlignment = StringAlignment CenterDim rcText As RectangleF = rfBoundrcText Width = e Graphics DrawString ( s New Font ( Veranda ) New SolidBrush ( Color Blue ) rcText sfTemp ) e Graphics DrawRectangle ( New Pen ( New SolidBrush ( Color LightGray ) ) rfBound ) If e State = ( DrawItemState NoAccelerator Or DrawItemState Selected ) Then e Graphics FillRectangle ( New SolidBrush ( Color LightYellow ) rfBound )  e Graphics DrawString ( s New Font ( Veranda FontStyle Bold Or FontStyle Underline ) New SolidBrush ( Color Red ) rcText sfTemp )  e Graphics DrawRectangle ( New Pen ( New SolidBrush ( Color Black ) ) rfBound )  e DrawFocusRectangle ( ) End IfEnd Sub

MenuItem 的DrawItem事件处理代码之后添加下列代码 下列代码是定义MenuItem 的MeasureItem事件 在此事件中实现设定 新建 菜单项的长度和高度

Private Sub MenuItem _MeasureItem ( ByVal sender As Object ByVal e As System Windows Forms MeasureItemEventArgs ) Handles MenuItem MeasureItem e ItemWidth =   设定菜单项的宽度 e ItemHeight =   设定菜单项的高度End Sub

在上述步骤都正确完成后 本文介绍的手工绘制菜单就完成 此时单击快捷键F 运行 程序就可以得到图 所示的运行界面

六.总结

本文主要内容是介绍VB NET设计和创建菜单 其中不仅介绍了使用菜单设计器来静态设计菜单 还介绍了使用MainMenu类 MenuItem类和ContextMenu类动态创建菜单的实现方法 在动态创建时 首先要了解要创建的菜单类型 是下拉菜单 首先要创建一个MainMenu实例 是弹出菜单 首先要创建一个ContextMenu实例 然后根据菜单中的组成结构 即菜单项中的父子关系 创建出相应菜单 最后就是显示出菜单 如果是下拉菜单 指派给Form的Menu属性 如果是弹出菜单 指派给可视组件或Form的ContextMenu属性 这样动态创建菜单才能够显示出来 动态创建菜单的工作才算完成

此外还介绍了在Visual Basic Net中绘制个性化菜单的实现方法和注意事项 在绘制个性化菜单时最重要的是掌握DrawItem事件和MeasureItem事件用法 及绘制菜单时所要使用到的方法 虽然本文绘制的菜单并不美观 但你可以通过本文介绍的方法来修改 从而实现更美观 更有个性的菜单 最后请记住 在绘制菜单时 首先把菜单项的 OwnerDraw 属性设定为 True

lishixinzhi/Article/program/net/201311/15454

VB.NET菜单设计初级入门[2]

二.MainMenu类 MenuItem类和ContextMenu类

虽然使用菜单设计器能够设计出各种菜单 但要真正掌握VB NET中的菜单编程 还必须了解并灵活使用MainMenu类 MenuItem类和ContextMenu类 其中MainMenu类和ContextMenu类所起的作用是相似的 它们的作用是提供一个菜单项容器 里面可以存放各种菜单项

MainMenu类表示的是下拉菜单的结构 里面存放的菜单项其实就是MenuItem实例 在创建完MainMenu实例后 必须要把此实例绑定到要显示此菜单的Form中 下拉菜单才能够显示 而要实现这种绑定其实非常简单 只需把MainMenu实例分配给Form的Menu属性就可以了

ContextMenu类表示当用户在控件或窗体的特定区域上单击鼠标右键时弹出的菜单结构 可视控件和Form窗体一般都有ContextMenu属性 要显示ContextMenu实例 只需把ContextMenu实例分配给要显示此弹出菜单的可视组件或Form窗体的ContextMenu 属性就可以了 多个组件可共同使用一个ContextMenu实例 MenuItem类表示的是MainMenu和ContextMenu中的每一个菜单项 显示创建的MenuItem实例 必须使用MainMenu或ContextMenu中的 Add 方法把MenuItem实例加入 若要创建子菜单 可以使用父MenuItem实例的 Add 方法把MenuItem实例添加到其MenuItems属性中

MenuItem类还提供一些属性用以设定菜单项的外观和功能 若要显示菜单项旁边的选中标记 可以使用Checked 属性 Shortcut属性可用于设定此菜单项对应的键盘组合键

下面就通过下面一个示例来具体了解上面三个类的使用方法 三.使用MainMenu类 MenuItem类和ContextMenu类动态创建菜单

下面就利用mainMenu类 MenuItem类和ContextMenu类动态创建图 所示的由菜单设计器设计出的菜单 其中包括下拉菜单和弹出菜单 下面是具体步骤

启动Visual Studio Net

选择菜单【文件】|【新建】|【项目】后 弹出【新建项目】对话框

将【项目类型】设置为【Visual Basic项目】

将【模板】设置为【Windows应用程序】

在【名称】文本框中输入【动态创建菜单】

在【位置】的文本框中输入【E:\VS NET项目】 然后单击【确定】按钮 这样在 E:\VS NET项目 目录中就产生了名称为 动态创建菜单 的文件夹 并在里面创建了名称为 动态创建菜单 的项目文件

把Visual Studio Net的当前窗口切换到【Form vb(设计)】窗口 并从【工具箱】中的【Windows窗体组件】选项卡中往Form 窗体中拖入下列组件 并执行相应操作

二个Button组件 名称分别为Button 和Button 并在这二个组件拖入窗体后 分别设定这二个组件的 Text 属性值为 创建下拉菜单 和 创建弹出菜单 之后再分别双击 这样Visual Basic Net会在Form vb中分别产生这二个组件的Click事件对应的处理代码

把Visual Basic Net的当前窗口切换到Form vb的代码编辑窗口 并用下拉代码替换Form vb中的Button 的Click事件对应的处理代码 下拉代码的作用是动态创建图 中的下拉菜单

Private Sub Button _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles Button Click Dim MainMenu As MainMenu = New MainMenu ( )  创建一个MainMenu实例 Dim myMenuItem As MenuItem = New MenuItem ( ) Dim myMenuItem As MenuItem = New MenuItem ( ) Dim myMenuItem As MenuItem = New MenuItem ( ) Dim myMenuItem As MenuItem = New MenuItem ( ) myMenuItem Text = 文件(F)  myMenuItem Text = 新建(N)  myMenuItem Text =  myMenuItem Text = 打开(O)   创建四个MenuItem实例 并进行相应设置 myMenuItem MenuItems Add ( myMenuItem ) myMenuItem MenuItems Add ( myMenuItem ) myMenuItem MenuItems Add ( myMenuItem )  以myMenuItem 是myMenuItem myMenuItem 和myMenuItem 的父菜单项 MainMenu MenuItems Add ( myMenuItem )  在MainMenu实例中加入MainItem实例 Me Menu = MainMenu   把MainMenu 指派给Form的的Menu属性 这样下拉菜单才能够显示 Button Enabled = FalseEnd Sub 

用下列代码替换Form vb中的Button 的Click事件对应的处理代码 下拉代码的作用是动态创建图 中的弹出菜单

Private Sub Button _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles Button Click Dim ContextMenu As ContextMenu = New ContextMenu ( )  创建一个ContextMenu实例 Dim myMenuItem As MenuItem = New MenuItem ( ) Dim myMenuItem As MenuItem = New MenuItem ( ) Dim myMenuItem As MenuItem = New MenuItem ( ) myMenuItem Text = 拷贝(C)  myMenuItem Text = 剪切(X)  myMenuItem Text = 粘贴(V)   创建三个MenuItem实例 并进行相应设置 ContextMenu MenuItems Add ( myMenuItem ) ContextMenu MenuItems Add ( myMenuItem ) ContextMenu MenuItems Add ( myMenuItem )  在ContextMenu 中加入MenuItem Me ContextMenu = ContextMenu   把ContextMenu 指派给Form的ContextMenu属性 显示弹出菜单 Button Enabled = FalseEnd Sub

至此【动态创建菜单】项目的全部工作就完成了 单击快捷键 F 运行程序 单击程序中的【创建下拉菜单】按钮 则创建出图 所示的下拉菜单 单击程序中的【创建弹出菜单】 则动态创建出图 所示的弹出菜单

如果您要创建的菜单中的菜单项还有子菜单 可以根据菜单项中的父子关系 把子菜单项加入到父菜单项 然后再把父菜单项加入上一级的菜单项或MainMenu和ContextMenu实例中 下面代码作用是创建图 所示的下拉菜单 如果是弹出菜单 其做法类似

Private Sub Button _Click ( ByVal sender As System Object ByVal e As System EventArgs ) Handles Button Click Dim ContextMenu As ContextMenu = New ContextMenu ( )  创建一个ContextMenu实例 Dim myMenuItem As MenuItem = New MenuItem ( ) Dim myMenuItem As MenuItem = New MenuItem ( ) Dim myMenuItem As MenuItem = New MenuItem ( ) myMenuItem Text = 拷贝(C)  myMenuItem Text = 剪切(X)  myMenuItem Text = 粘贴(V)   创建三个MenuItem实例 并进行相应设置 ContextMenu MenuItems Add ( myMenuItem ) ContextMenu MenuItems Add ( myMenuItem ) ContextMenu MenuItems Add ( myMenuItem )  在ContextMenu 中加入MenuItem Me ContextMenu = ContextMenu   把ContextMenu 指派给Form的ContextMenu属性 显示弹出菜单 Button Enabled = FalseEnd Sub

图 动态创建存在子菜单的下拉菜单

四. Net Frame Work SDK 为在VB Net绘制菜单提供的工具

Net Frame Work SDK为Visual Basic Net实现个性化菜单提供了许多工具 其中最重要是二个事件及其参数 DrawItem事件和其中的DrawItemEventArgs参数 MeasureItem事件和其中的MeasureItemEventArgs参数

DrawItem事件和其中的DrawItemEventArgs参数

DrawItem事件是当菜单项的OwnerDraw属性设置为True并且发出绘制菜单项的请求时才发生 个性化菜单制作的处理方法就是在此事件中完成的 在DrawItem事件处理程序中将接收一个 DrawItemEventArgs类型的参数 它包含与此事件相关的数据 这些数据对绘制菜单是很重要的 表 是DrawItemEventArgs类型参数提供特定于此事件的信息

 表 DrawItemEventArgs类型参数提供DrawItem事件特定的信息

MeasureItem事件和其中的MeasureItemEventArgs参数

触发MeasureItem事件必须将菜单项的OwnerDraw属性设置为True 个性化菜单制作可通过此事件来获取 设定菜单项的大小等 MeasureItem事件处理程序中接收一个MeasureItemEventArgs类型的参数 此参数对获取 设定菜单项的大小是非常重要的 表 是MeasureItemEventArgs类型参数提供MeasureItem事件的特定信息

表 是MeasureItemEventArgs类型参数提供MeasureItem事件的特定信息

lishixinzhi/Article/program/net/201311/15453


文章名称:vbnet设计 vbnet常用控件介绍
文章分享:http://scyanting.com/article/hgdpdd.html