2009-08-26 167 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());