日期:2014-05-17  浏览次数:21165 次

右键菜单不自动关闭问题
目的是制作一个  右键菜单contextMenuStrip,菜单上面有多个CheckBox的个功能子菜单,
现在想实现:用户确认完多个选项后在关闭菜单。

ps:设置AutoClose属性false后菜单都不弹出。


请高手指教指教
contextMenuStrip? AutoClose

------解决方案--------------------
改成这样的吧, 用这个就可以了(menu.OwnerItem as ToolStripMenuItem).ShowDropDown();

 private void Form1_Load(object sender, EventArgs e)
        {
            foreach (ToolStripMenuItem mnu in contextMenuStrip1.Items)
            {
                foreach(ToolStripMenuItem mnuSub in mnu.DropDownItems)
                    mnuSub.Click += mnu_Click;

            }
            contextMenuStrip1.AutoClose = false;
        }

        void mnu_Click(object sender, EventArgs e)
        {
            ToolStripMenuItem menu = sender as ToolStripMenuItem;
            menu.Checked = !menu.Checked;

            int checkedCount = 0;

            foreach (ToolStripMenuItem mnu in (menu.OwnerItem as ToolStripMenuItem).DropDownItems)
            {
                if (mnu.Checked)
                    checkedCount++;
            }
           

            if (checkedCount < 5) //这里举例说CheckBox小于5个,不关闭contextMenuStrip1,你按你实际需要的数量修改
                (menu.OwnerItem as ToolStripMenuItem).ShowDropDown();

            
        }