Получение текста ToolstripItem в ContextMenuStrip

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

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

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

ChangeTotoolstripitem.DropDown.Items... 

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

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

private void changeTypeToToolStripMenuItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)

person techmanc    schedule 29.06.2011    source источник


Ответы (3)


Это не будет работать, поскольку у вас есть ToolStripItemClickedEventArgs?:

string toolstripItemName = e.ClickedItem.Text;
person hdougie    schedule 29.06.2011

использовать

private void changeTypeToToolStripMenuItem_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
   string clickedtext=e.ClickedItem.Text;
}
person Bolu    schedule 29.06.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) или что-то еще.

person jp2code    schedule 29.06.2011