如果选择了任何项目,C#contextmenustrip不会显示任何指示

时间:2017-07-19 11:47:59

标签: c# winforms contextmenu menuitem

我添加了一个上下文菜单条'查看'在我的列表视图上有一些菜单项,如大图标/小图标/瓷砖。

现在每当我选择任何选项时,相应的视图都会发生变化,但是菜单没有得到任何标记/指示,就像在Windows文件浏览器中一样,它会显示针对所选菜单项的项目符号/点。 / p>

有人可以展示一下,我如何为我的上下文菜单获得类似的点/子弹?

我已经尝试了CheckOnClick属性,它给我一个刻度线,但是有没有其他方法可以让那个点在那里?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我找不到像Windows File Explored的View选项那样获取子弹/点的方法,但我使用了下面的逻辑并使用了检查状态来指示所做的选择。

 private void toolStripViewOptions_Click(object sender, EventArgs e)
 {
            ToolStripMenuItem selectedOption = sender as ToolStripMenuItem;

            SetIndicationForSelectedOption(selectedOption);
 }



private void SetIndicationForSelectedOption(ToolStripMenuItem selectedMenuItem)
{
            ToolStripItemCollection menuItems = (contextMenuStrip.Items[(Int32)toolStripView.Tag] as ToolStripMenuItem).DropDownItems;

            // Set checked state for only the selected view option and disable same for others.
            foreach (ToolStripMenuItem item in menuItems)
            {
                if (selectedMenuItem == item)
                    selectedMenuItem.Checked = true;
                else
                    item.Checked = false;
            }
 }

这符合我的要求。