Получение текста ToolstripItem в ContextMenuStrip - PullRequest
2 голосов
/ 29 июня 2011

У меня есть контекстное меню для DGV. У него есть набор инструментов под названием «ChangeTo», и он разветвляется на набор элементов, которые создаются динамически на основе используемого файла конфигурации. Когда я запускаю программу, имеющую Rt-Click -> Change To -> (Список элементов)

Когда я щелкаю по любому элементу из выпадающего списка в контекстной меню, я хочу, чтобы выбранная строка DGV изменилась на текст в списке ...

Для этого мне нужно получить текст, связанный с toolstripitem. Как я могу это сделать? Я не могу просто использовать toolstripitemname.text, потому что я не знаю имя элемента до времени выполнения ... Я пытался использовать

ChangeTotoolstripitem.DropDown.Items... 

но мне нужен индекс ...

Это функция, которую я использую при нажатии на элемент

private void changeTypeToToolStripMenuItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)

Ответы [ 4 ]

1 голос
/ 29 июня 2011

Не будет ли это работать, если у вас есть ToolStripItemClickedEventArgs?:

string toolstripItemName = e.ClickedItem.Text;
1 голос
/ 29 июня 2011

Мне приходилось читать это несколько раз, но я думаю, что это то, что вы ищете:

private void changeTypeToToolStripMenuItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e) {
  ToolStripMenuItem mi = sender as ToolStripMenuItem;
  if (mi != null) {
    // This is your text:
    Console.WriteLine(mi.Text);
  }
}

Это то, что вы ищете?Вы также можете легко получить имя элемента управления (mi.Name) или что-то еще.

1 голос
/ 29 июня 2011

использование

private void changeTypeToToolStripMenuItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
   string clickedtext=e.ClickedItem.Text;
}
0 голосов
/ 08 октября 2013
ToolStripItem item = e.ClickedItem;
Console.WriteLine("++ clicked item ->{0}[{1}]  of {2}", item.Name, item.Text, item.Owner.Name);
...