好得很程序员自学网

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

C#遍历WinForm三级主菜单并绑定点击事件

C#遍历WinForm三级主菜单并绑定点击事件,并根据菜单所设置的tag来决要打开的窗口

给菜单绑定点击事件

private void SetMenuBindEventHandler()

{

            var allMenus = this.menuStrip1.Items;

            foreach (ToolStripMenuItem oneItem in allMenus)

            {

                bool hasTwoSubMenus = oneItem.HasDropDownItems && oneItem.DropDownItems.OfType<ToolStripMenuItem>().Any();

                if (hasTwoSubMenus)

                {

                    foreach (object twoObj in oneItem.DropDownItems)

                    {

                        if(twoObj is ToolStripMenuItem)

                        {

                            ToolStripMenuItem twoItem = (ToolStripMenuItem)twoObj;

                            bool hasThrSubMenus = twoItem.HasDropDownItems && twoItem.DropDownItems.OfType<ToolStripMenuItem>().Any();

                            if (hasThrSubMenus)

                            {

                                foreach (ToolStripMenuItem thrItem in twoItem.DropDownItems)

                                {

                                    //三菜单菜单绑定点击事件

                                    thrItem.Click += new EventHandler(ToolStripItem_Click);

                                }

                            }

                            else

                            {

                                //二菜单菜单绑定点击事件

                                twoItem.Click += new EventHandler(ToolStripItem_Click);

                            }

                        }

                        else

                        {

                            continue;

                        }

                    }

                }

                else

                {

                    #region 无下级一级菜单项绑定点击事件

                    oneItem.Click += new EventHandler(ToolStripItem_Click);

                    #endregion

                }

            }

}

菜单点击事件方法

        private void ToolStripItem_Click(object sender, EventArgs e)

        {

            //定位目标

            ToolStripItem item = (ToolStripItem)sender;

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

            switch (item.Tag)

            {

                 case "hdhms": fm = new FormHdhCms(); break;//

                default:

                    fm = null;

                    break;

            }

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

        }


查看更多关于C#遍历WinForm三级主菜单并绑定点击事件的详细内容...

  阅读:24次