2009-08-26 128 views
10

您好我在标签(c#,winforms)上添加了一个上下文菜单。我的上下文菜单有3个子项目,当我点击任何一个上下文菜单项时,我想显示标签文本。上下文菜单父项?

在此先感谢

+0

哪里想要的文字和从哪里来?从标签或标签上? – 2009-08-26 11:51:54

+0

你有没有考虑过使用组合框?这可能会让用户更直观地理解 – 2009-08-26 11:54:24

+0

我想显示标签文本(标签只是上下文菜单的标签) – Nagu 2009-08-26 11:59:30

回答

18

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); 
     } 
    } 
} 
+0

我想显示标签文本(标签只不过是paret的上下文菜单) – Nagu 2009-08-26 12:00:07

+0

嘿在这里,我们得到MenuItem不ToolStripItem – Nagu 2009-08-26 12:09:38

+0

@Nagu:添加代码示例'ContextMenu '。 – 2009-08-26 12:18:11

0

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