【问题标题】:Get text on items and sub-items contextmenustrip获取有关项目和子项目的文本 contextmenustrip
【发布时间】:2020-02-27 13:09:57
【问题描述】:

我在 toolStripDropDownButton 中有一个上下文菜单条,其中包含以下项目和子项目:

private void addItem()
{
    toolStripDropDownButton1.DropDown = this.contextMenuStrip1;
    contextMenuStrip1.Items.Add("item A");
    contextMenuStrip1.Items.Add("item B");
    contextMenuStrip1.Items.Add("item C");
    addSubItem();
}

private void addSubItem()
{
    for (int i = 0; i < contextMenuStrip1.Items.Count; i++)
    {
        (contextMenuStrip1.Items[i] as ToolStripMenuItem).DropDownItems.Add("SubItem 1");
        (contextMenuStrip1.Items[i] as ToolStripMenuItem).DropDownItems.Add("SubItem 2");
        (contextMenuStrip1.Items[i] as ToolStripMenuItem).DropDownItems.Add("SubItem 3");
    }
}

我想问一下,如果我只是单击任何子项,我如何获得有关项和子项的文本。比如我点击C项中的Subitem 2,则输出为item C and Subitem 2

【问题讨论】:

    标签: c# toolstrip contextmenustrip


    【解决方案1】:

    您可以为子项添加 Click 事件并使用 OwnerItem 属性来获取该子项的父菜单。

    addSubItem() 内部

     foreach (ToolStripMenuItem item in (contextMenuStrip1.Items[i] as ToolStripMenuItem).DropDownItems)
                    {
                        item.Click += Item_Click;
                    }
    

    点击事件是

    private void Item_Click(object sender, EventArgs e)
        {
            string parentMenuText = (sender as ToolStripMenuItem).OwnerItem.Text;
            string subItemText = (sender as ToolStripMenuItem).Text;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多