2014-12-16 2 views
-6

У меня есть набор динамически созданных флажков на панели, а также реализованы ContextMenuStrip для всех флажков. Я не могу обнаружить, какой элемент управления отображает контекстное меню, определенное в ContextMenuStrip.Переименовать флажок, выполнив ContextMenu C# winforms

+2

Пожалуйста, добавьте код, который расчистить ур проблемы. Который также показывает то, что вы пробовали раньше. –

+0

Вы действительно используете ContextMenu? ... или ContextMenuStrip? –

ответ

1

У меня есть ответ.

private void MenuViewDetails_Click(object sender, EventArgs e)  
{  
    // Try to cast the sender to a MenuItem  
    MenuItem menuItem = sender as MenuItem;  
    if (menuItem != null)  
    {  
     // Retrieve the ContextMenu that contains this MenuItem  
     ContextMenu menu = menuItem.GetContextMenu();  

     // Get the control that is displaying this context menu  
     Control sourceControl = menu.SourceControl;  
    } 
} 
0

Используйте свойство SourceControl().

С ContextMenu:

private void menuItem1_Click(object sender, EventArgs e) 
    { 
     CheckBox cb = (CheckBox)contextMenu1.SourceControl; 
     Console.WriteLine(cb.Name); 
    } 

С ContextMenuStrip:

private void renameToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     CheckBox cb = (CheckBox)contextMenuStrip1.SourceControl; 
     Console.WriteLine(cb.Name); 
    } 
+0

Oh! ... похоже, что вы уже нашли этот ответ самостоятельно! =) –

+0

да! Благодаря FR ур ответ –

Смежные вопросы