当前位置: 移动技术网 > IT编程>开发语言>c# > c#菜单动态合并的实现方法

c#菜单动态合并的实现方法

2020年03月09日  | 移动技术网IT编程  | 我要评论

说明

在程序中经常使用弹出菜单,并且一个窗体中可以存在多个弹出菜单。开发过mdi窗体的读者可能都知道,当mdi子窗体最大化时,子窗体和主窗体的菜单能够自动的合并。这是如何实现的呢?本例实现了将两个弹出菜单动态的合并成一个弹出菜单的功能。实例效果如图1.2所示。

要点

c# 2.0中已经将弹出菜单封装为context menustrip控件,利用该控件中的items对象可以操作菜单中的菜单项。该对象是toolstripmenuitem类型,使用items.addrange( )方法可以向弹出菜单中添加菜单项,该方法原型如下。

public void addrange (
  toolstripitem[] toolstripitems
)

参数说明如下。

toolstripitems:控件的数组。

过程

(1)创建一个项目,将其命名为ex01_02,默认窗体为form1。

(2)从工具箱中向form1窗体添加一个menustrip控件用来设计菜单;同时向窗体添加contextmenustrip控件用来设计右键菜单;选中menustrip控件创建一个“打开子窗体”主菜单,然后选中contextmenustrip控件为其添加子项。

(3)为程序添加一个窗体,默认名为form2,同时向窗体添加contextmenustrip控件用来设计右键菜单,然后选中contextmenustrip控件为其添加子项。

 private void 打开自窗体toolstripmenuitem_click(object sender, eventargs e)
    {
      form2 f = new form2();
      f.mdiparent = this;
      f.show();//显示子窗体
      f.resize += new eventhandler(f_resize);
    }
    void f_resize(object sender, eventargs e)
    {
      form2 f = (form2)sender;
      toolstripmenuitem item = new toolstripmenuitem();
      for (int i = 0; i < f.contextmenustrip2.items.count; )//合并菜单
      {
        item.dropdownitems.add(f.contextmenustrip2.items[i]);
      }
      this.contextmenustrip1.items.addrange(new system.windows.forms.toolstripitem[] {
      item});
    }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网