Обработка событий с помощью динамического ToolStripItem
-
03-07-2019 - |
Вопрос
Я пытаюсь динамически добавлять элементы в toolstrip с помощью следующего кода:
contextMenuStrip.Items.Add(string.Format("{0} kB/s", currSpeed), null, new EventHandler(Connection.SetSpeed));
Проблема в том, что мне нужно передать параметр в Connection.setSpeed:Текущая скорость (int).Как я могу это сделать?
Спасибо, что уделили мне время.С наилучшими пожеланиями.
Решение
Вызов add вернет вам ToolStripItem, если вы установите его свойство Tag в переменную currSpeed, вы сможете извлечь этот ToolStripItem через аргумент sender в Соединении.Метод setSpeed устанавливается при нажатии на элемент...
ToolStripItem item = contextMenuStrip.Items.Add(string.Format("{0} kB/s", currSpeed), null, new EventHandler(Connection.SetSpeed));
item.Tag = currSpeed;
void Connection.SetSpeed (object sender, EventArgs e)
{
ToolStripItem item = (ToolStripItem)sender;
int currSpeed = (int)item.Tag;
// Do stuff...
}
Не связан с StackOverflow