上下文菜单父?(context menu parent?)

2019-07-03 18:17发布

您好我添加标签上的上下文菜单(C#的WinForms)。 有我的上下文菜单3个子项,我想显示文字标签,当我在上下文菜单项中的任何一个点击。

提前致谢

Answer 1:

ContextMenuStrip控件具有SourceControl属性,将必须打开它的控制提供参考。 你可以用它来提取控件中的文本:

private void MenuStripItem_Click(object sender, EventArgs e)
{
    ToolStripItem item = (sender as ToolStripItem);
    if (item != null)
    {
        ContextMenuStrip owner = item.Owner as ContextMenuStrip;
        if (owner != null)
        {
            MessageBox.Show(owner.SourceControl.Text);
        }
    }
}

如果代替ContextMenuStrip使用ContextMenu ,代码应该是这样的:

private void menuItem1_Click(object sender, EventArgs e)
{
    MenuItem item = (sender as MenuItem);
    if (item != null)
    {
        ContextMenu owner = item.Parent as ContextMenu;
        if (owner != null)
        {
            MessageBox.Show(owner.SourceControl.Text);
        }
    }
}


Answer 2:

它在一行最好的:

Control control = ((ContextMenuStrip)((ToolStripItem)sender).Owner).SourceControl;


Answer 3:

获取上下文菜单家长控制名称MessageBox.Show(contextMenuStrip1.SourceControl.Name.ToString());



文章来源: context menu parent?