Обработка событий с помощью динамического ToolStripItem

StackOverflow https://stackoverflow.com/questions/614482

  •  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...
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top