c# - 如何检查 ToolStripMenuItem?

标签 c# menu menuitem toolstrip menustrip

我正在使用 MenuStrip有两个主要ToolStripMenuItems ,其中每一个都有其“下拉菜单”,其中包含更多具有 CheckOnClick 的 ToolStripMenuItems属性设置为 true。

现在我正在尝试检索所选项目,我知道bool ToolStripMenuItem.Checked存在,但如何使用循环获取 ToolStripMenuItems来自每个主要ToolStripMenuItem然后检查哪一个有 .Cheked is == true?

或者是否有更好的方法来检索选中的 ToolStripMenuItem

最佳答案

假设您正在使用 Linq,您可以执行以下操作:

    private void button1_Click(object sender, EventArgs e)
    {
        foreach (var item in this.menuStrip1.Items.Cast<ToolStripMenuItem>())
        {
            GetCheckMenuItemText(item);
        }
    }

    private void GetCheckMenuItemText(ToolStripMenuItem item)
    {
        if (item.HasDropDownItems)
        {
            foreach (var subItem in item.DropDownItems.Cast<ToolStripMenuItem>())
            {
                GetCheckMenuItemText(subItem);
            }
        }
        else
        {
            if (item.CheckOnClick)
                Debug.WriteLine(item.Text);
        }
    }

关于c# - 如何检查 ToolStripMenuItem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5514939/

相关文章:

c# - WPF - 如何使用绑定(bind)创建菜单和子菜单

android:onClick 不适用于 Android 4.0.3

c# - 在 LINQ 查询中对基类使用扩展方法

c# - 如何从形状或点集合中检索外部点?

c# - ObservableCollection 的逆序

CSS 菜单在 IE 中的 siFR 标题中断

c# - 如何从列表中找到最低值?

html - 为什么我的导航栏没有突出显示?

android - 如何在像图像这样的android操作菜单中显示带有文本的图标列表

java - Android 在启动时动态设置菜单项