Hedi Hadi Ответов: 1

Как добавить clickhandler в menustrip, созданный программно


Привет, у меня есть динамический contextmenustrip, который я помещаю в него элементы во время выполнения с помощью этого кода

strp[i] = new ContextMenuStrip();
strp[i].Items.Add("Delete from this List", null,showMessageBox);


я хочу показать messagebox, когда элемент щелкнул,

я не могу использовать метод лик
void disp(object sender, EventArgs e)
{
messagebox.show("hi");
}


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

Что я уже пробовал:

я уже пробовал этот код
strp[i].Items.Add("Delete from this List", null, Click +=(b,g) => { MessageBox.Show("hi") });


но он дает ошибку (не может изменить void на system.handler), я попытался изменить его на
object sender, eventhandler t

но это не работает, я перепробовал много других кодов, но ни один из них не сработал

1 Ответов

Рейтинг:
0

OriginalGriff

Попробовать это:

ContextMenuStrip cms = new ContextMenuStrip();
myTextBox.ContextMenuStrip = cms;
cms.Items.Add("Test", null, (s, a) => { MessageBox.Show("Hi!"); });