科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Windows Forms菜单设计全攻略

Windows Forms菜单设计全攻略

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

怎样才能掌握Windows Forms菜单的实质,怎样才能为所欲为的进行窗体菜单程序的开发呢

作者:蔡世友 来源:yesky 2007年11月14日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
二、菜单程序使用类及体系结构

  在.NET类库中,定义了一个非常庞大的基础类,以供用户在各种编程使用。在这些类中,有几个专为用户编写菜单程序所用的类,通过使用这几个类,你可以设计出自己想要的任何菜单。下面分别进行简单的介绍:

  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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章