扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:蔡世友 来源:yesky 2007年11月14日
关键字:
2.1 Windows Forms菜单类体系结构
.Net类库中,菜单类的定义体系结构如下:
Object
MarshalByRefObject
Component
Menu
ContextMenu
MainMenu
MenuItem
从上面结构中,我们可以看出,菜单程序设计主要用到三个从Menu类继承的类:ContextMenu、MainMenu与MenuItem,它们分别封装了对弹出式菜单、主菜单及菜单项的定义。
另外,.Net类库还提供了一个Menu.MenuItemCollection集合类来方便对各菜单项的管理。其定义如下:
public class Menu.MenuItemCollection:IList,ICollection,Ienumerable;
2.2 System.Windows.Forms.Menu类
该类是一个抽象类,其是各种类型菜单的基类,封装了一个Windows Forms菜单的大部份公共属性。
在菜单应用程序设计中,我们不直接(也不能)使用该类,而是使用其派生类MainMenu、MenuItem、ContextMenu等进行菜单开发;但可以从该类派生出自己更具个性化的菜单。
在该类中有定义了一个非常重要的属性:MenuItems,其表示该对象所包含的菜单项集合。
2.3 System.Windows.Forms.MenuItem类
该类封装了一个菜单项中的各种成员,所有的菜单项都是由MenuItem对象构成的。该类包含了对一个菜单项的详细定义,如菜单项目的各种属性、响应事件及方法等。MenuItem对象是各种菜单的基本元素,在后面我们将详细讲解菜单项的使用。
2.4 System.Windows.Forms.MainMenu类
作为一个窗体主菜单的容器,其实例产生一个窗体的主菜单对象。你可以直接通过该类的构造函数生成MainMenu对象。其构造函数有两种形式:
MainMenu():不带任何参数,将生成一个不带菜单项的主菜单对象。
MainMenu(MenuItem[] menus):带一个菜单项数据参数,将生成一个主菜单对象,并包括参数中拥有的菜单,作为菜单项。
MainMenu的Menu类的基础上,添加了一个属性:RightToLeft,把属性设为RightToLeft.Yes可以使你的主菜单从窗体的右边排到左边(这种表示是一些国家的语言习惯)。
MainMenu对象提供一个方法CloneMenu(),使得用户可以方便的复制主菜单对象。除此之外,还可以通过GetForm()方法查看当前主菜单所在的窗体。
2.5 System.Windows.Forms.ContextMenu类
该类封装了对弹出式菜单各种特性及功能的定义。使用该类,当你在一个控件上点击右键,或者是在窗体的任何一个区域点击右键,将可以弹出一个快捷菜单。
生成一个弹出式菜单对象,可以使用该类有两个构造函数。其中ContextMenu()生成一个不含任何菜单项的弹出式菜单;ContextMenu(MenuItem[] menus)生成一个包括参数中所指定的菜单项的弹出式菜单。
ContextMenu类在Menu的基础上增加了两个属性,其中一个是RightToLeft可以使菜单项从右到左对齐,另一个SourceControl属性返回一个Control值表示当前所显示弹出菜单对应的控件。
在ContextMenu类中,通过Show()方法可以使程序主动显示弹出菜单。当弹出菜单弹出时将引发一个Popup事件,你可以在定义该事件的响应方法使弹出菜单显示前做一些操作;你也可以通过虚拟的OnPopup()方法引发弹出菜单的Popup事件。
2.6 System.Windows.Forms.Menu.MenuItemCollection类
表示系列菜单项(MenuItem)对象的集合,并提供管理集合中元素的各种方法。该类从Object中继承,并通过Ilist、Icollection等接口继承了.Net中关于集合的各种操作,其在.Net类库中说明如下:
public class Menu.MenuItemCollection : IList,ICollection,IEnumerable
通过使用菜单项集合类,你可以使用集合的各种操作方法,从而非常方便的管理一系列的菜单项,如一个主菜单上的所有菜单项及一个主菜单下的所有子菜单等。
同.Net中的所有集合对象一样,该类Count属性返回集合中的菜单项;还可以通过索引(Index)访问集合中的菜单项;你可以通过集合的Add()、AddRange()向集合中加入菜单项对象,也可以通过Remove()及RemoveAt()等方法删除集合中的元素等等。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。