Рейтинг:
20
DamithSL
проверять Как добавить ToolStripMenuItems для управления menustrip или динамическое контекстное меню [^]
Когда вы добавляете пункты меню, дающие уникальный текст для них, то вы можете легко определить, какой пункт меню щелкнул объект отправителя события.
Пример кода:
ToolStripMenuItem menu = new ToolStripMenuItem(submenuName);
menu.Click += new EventHandler(menu_Click);
myToolStripMenuItem.DropDown.Items.Add(menu);
// add the event as below
void menu_Click(object sender, EventArgs e)
{
var menuItem = sender as MenuItem;
var menuText = menuItem.Text;
switch(menuText) {
case "MenuItem1":
// menu item1 clicked .. do something
break;
case "MenuItem2":
// menu item2 clicked .. do something
break;
. ...
}
4L4K1
спасибо, что это работает. самая быстрая сольватация когда-либо
DamithSL
добро пожаловать!
BillWoodruff
Мой голос за № 3. Дамит, извини, но этот CP-совет-очень некачественный код. к вашему сведению: имхо, голосование № 3-это не отрицательное голосование.
DamithSL
Это нормально, но я очень рад, если вы можете пойти и проголосовать за этот совет с конструктивной обратной связью, почему вы считаете его некачественным и как его можно улучшить. это может помочь всему сообществу CP.
BillWoodruff
Привет, Дамит, я пошел дальше: я сообщил об этом чаевом: имхо, он никогда не должен был быть опубликован. Кроме того, я бы (проголосовал против или) оставил конструктивную (я надеюсь) обратную связь только по последним статьям/советам, с которыми я столкнулся: те, которые показали доказательства того, что автор ответил на комментарии пользователей за последние несколько лет.
К сожалению, существует так много некачественных путаных/нерелевантных/отрыгивающих-документальных статей и советов по CP, что было бы полной работой сообщать о них или пытаться улучшить их. Но, пожалуйста, не думайте ... основываясь на этом заявлении ... что я в любом случае недоволен CP: мне нравится CP, и есть так много замечательных статей и советов, настоящих драгоценных камней, которые имеют профессиональное качество кода, которые поддерживаются/расширяются в течение многих лет авторами. Чашка более чем наполовину полна ! И здесь, на QA, есть много высококачественных ответов, включая некоторые из ваших :)
твое здоровье, Билл
DamithSL
Билл, я добавил пример кода,это поможет в случае удаления чаевых в будущем :)
BillWoodruff
К сожалению, добавление некачественного кода, скопированного из статьи, не улучшает ваше решение.
Подумайте о сценарии, в котором во время выполнения есть Меню верхнего уровня с именем " MainMenu:
1. Новый ToolStripMenuItem с текстом "eightSubOne" добавляется (как пункт подменю) к пункту "MainMenu" с текстом "eight."
и ... чуть позже, после других возможных манипуляций с меню:
2. вы хотите добавить элемент подменю в "eightSubOne" с текстом "eightSubOneSubOne."
Как вы найдете пункт подменю "eightSubOne", чтобы добавить новый элемент ?
Подсказка: с кодом, который вы используете сейчас (из подсказки), у вас возникнут проблемы.
Кроме того, что происходит, когда вы хотите удалить MenuItem, и хотите, чтобы все его уровни sub...sub...? предметы удалены ?
DamithSL
Я понял твою точку зрения. Спасибо