Windows Forms菜单设计全攻略(下)

4.2 添加子菜单

  在.Net中,菜单项对象模型其实是一个树状的。一个菜单可以通过在其MenuItems集合中添加菜单项,使其拥有下级子菜单;子菜单同样还可以通过相同的方法添加更下一级子菜单。

  一个菜单项对象的MenItems将返回一个Menu.MenuItemCollection集合,通过这个集合可以非常方便的管理其中的元素,例如:要添加一个子菜单只需要使用集合的Add()或者AddRange()方法,删除一个项只需要使用Remove()或者是RemoveAt()即可。

  下面的代码将为窗体添加一个主菜单,并在主菜单的第一项添加子菜单:

MainMenu Menu1=new MainMenu(new MenuItem[]{new MenuItem(“File”),new MenuItem(“Edit”),new MenuItem(“Tools”)});

this.Menu=Menu1;

MenuItem subMenu1=new MenuItem(“New”);

MenuItem subMenu2=new MenuItem(“Open”);

MenuItem subMenu3=new MenuItem(“Save”);

this.Menu.MenuItems[0].MenuItems.Add(subMenu1);

this.Menu.MenuItems[0].MenuItems.AddRange(new MenuItems[]{subMenu2,subMenu3});//使用AddRange()方法添加集合元素

  其中this.Menu.MenuItem[0]表示主菜单项1,而this.Menu.MenuItem[0].MenuItems表示主菜单项1下面的子菜单。

  4.3 添加弹出式菜单

  在.Net中,System.Windows.Forms.Control类是除菜单外的所有窗体控件及可视化元素的基类,在该类中有一个ContextMenu类型的属性ContextMenu,通过设置该属性可以为控件或窗体添加弹出式菜单。方法非常简单,你只需要创建一个ContextMenu对象,并把该对象赋给窗体或控件的ContextMenu属性即可。

  前面我们介绍了ContextMenu类有两个构造函数,使用两个构造函数,与MainMenu类似,我们可以通过下面两种方法为控件或窗体添加弹出式菜单。

  第一种方法,使用ContextMenu()产生一个不含任何菜单项的ContextMenu(弹出菜单)对象,然后通过该对象的MenuItems属性管理菜单项,如下面的语句为窗体及按钮添加同样的弹出菜单:

ContextMenu Menu1=new ContextMenu();

Menu1.MenuItems.Add(new MenuItem(“弹出菜单一"));

Menu1.MenuItems.Add(new MenuItem(“弹出菜单二"));

this.ContextMenu=Menu1;

button1.ContextMenu=Menu1;

  第二种方法是使用ContextMenu(MenuItem[] menus)构造函数直接生成具有一系列菜单项的弹出式菜单。如下面的例子:

MenuItem menu1=new MenuItem("弹出菜单一");//生成一个菜单项

MenuItem menu2=new MenuItem("弹出菜单二");

MenuItem menu3=new MenuItem("-");//菜单分隔线

MenuItem menu4=new MenuItem("弹出菜单三");

this.ContextMenu=new ContextMenu(new MenuItem[]{menu1,menu2,menu3,menu4,menu5});//为当前窗体添加弹出式菜单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值