好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

C#中自定义菜单(menuStrip)控件通过设置菜单Tag打开新的窗口

C#中自定义菜单(menuStrip)控件通过设置菜单Tag打开新的窗口

        //窗体的构造函数

        public MainForm()

        {

            InitializeComponent();

            //初始化菜单点击事件

            SetMenuClick();

        }

        /// <summary>

        /// 初始化菜单并绑定菜单的点击事件ToolStripItem_Click

        /// </summary>

        public void SetMenuClick()

        {

            //菜单strip赋值

            var menus = this.menuStrip1.Items;//获取7个主菜单

            foreach (ToolStripMenuItem item in menus)//循环主菜单

            {

                foreach (ToolStripItem temp in item.DropDownItems)//循环主菜单下的子菜单

                {

                    temp.Click += new EventHandler(ToolStripItem_Click);//给子菜单绑定点击

                }

            }

        }

菜单点击事件:   

 private void ToolStripItem_Click(object sender, EventArgs e)

        {

            //定位目标

            ToolStripItem item = (ToolStripItem)sender;

            if (fm != null) fm.Close();

            switch (item.Tag)

            {

                // 系统菜单

                case "unit": fm = new EditUnit(); break;//单位

                case "client": fm = new EditClient(); break;//客户

                case "celltype": fm = new EditCellType(); break;//元件类型

                case "cell": fm = new EditCell(); break;//元件

                case "drive": fm = new EditDrive(); break;//驱动

                case "power": fm = new EditPower(); break;//功率

                case "brand": fm = new EditBrand(); break;//品牌

                case "company": fm = new EditCompany(); break;//公司

                case "subject": fm = new EditSubject(); break;//科目

                case "proname": fm = new EditProname(); break;//品名

                case "clientInfor": fm = new ClientInfor(); break;//客户信息管理

                //产品菜单

                case "protype": fm = new EditProtype(); break;//产品大类

                //case "pro": fm = new EditPros(); break;//产品

                case "qt": fm = new EditQuote(); break;//报价单

                // case "qtmenu": fm = new EditQtMenu(); break;//报价明细

                case "admin": fm = new EditAdmins(); break;

                case "role": fm = new EditRole(); break;

                //产品资料

                case "image": fm = new EditImage(); break;//图片管理

                case "pfd": fm = new EditPfds(); break;//工艺流程图

                default:

                    fm = null;

                    break;

            }

            if (fm != null) ShowForm(fm);

        }

    //主窗口toolStripContainer嵌入打开窗口

        public void ShowForm(Form form)

        {

            //C#的Winform开发分别用嵌入ToolStripContainer 与 Panel嵌入子窗体的(Form)方法

            #region 用 嵌入ToolStripContainer 子form的方法

            toolStripContainer1.ContentPanel.Visible = false;

            // 释放之前 toolStripContainer1.ContentPanel 里面的控件

            foreach (Control item in toolStripContainer1.ContentPanel.Controls)

            {

                item.Dispose();

            }

            // 设置窗体的层级

            form.TopLevel = false;

            // 去除边框

            form.FormBorderStyle = FormBorderStyle.None;

            // 设置停靠

            form.Dock = DockStyle.Fill;

            // 重置

            //Panel son = new Panel();

            //son.Dock = DockStyle.Fill;

            //son.Controls.Clear();

            //son.Controls.Add(form);

            toolStripContainer1.ContentPanel.Controls.Clear();

            toolStripContainer1.ContentPanel.Controls.Add(form);

            form.Show();

            Thread.Sleep(100);

            toolStripContainer1.ContentPanel.Visible = true;

            #endregion

        }


查看更多关于C#中自定义菜单(menuStrip)控件通过设置菜单Tag打开新的窗口的详细内容...

  阅读:29次