2008-09-17 3 views
2

Я программно добавляю элементы ToolStripButton в контекстное меню.Как программно подключить события ToolStripButton в C#?

эта часть простой.

this.tsmiDelete.DropDownItems.Add("The text on the item."); 

Однако, мне также нужно соединять события, так что, когда пользователь нажимает на предмет что-то на самом деле происходит!

Как это сделать? Метод, который обрабатывает клик, также должен получать какой-то идентификатор или объект, который относится к определенному ToolStripButton, который пользователь нажал.

ответ

3

Не могли бы вы просто подписаться на событие Click? Что-то вроде этого:

ToolStripButton btn = new ToolStripButton("The text on the item."); 
this.tsmiDelete.DropDownItems.Add(btn); 
btn.Click += new EventHandler(OnBtnClicked); 

И OnBtnClicked будет объявлен так:

private void OnBtnClicked(object sender, EventArgs e) 
{ 
    ToolStripButton btn = sender as ToolStripButton; 

    // handle the button click 
} 

Отправитель должен быть ToolStripButton, так что вы можете бросить его и делать все, что вам нужно сделать с ним.

0

Спасибо за помощь в этом Энди. Моя единственная проблема теперь в том, что AutoSize не работает с ToolStripButtons, который я добавляю! Они слишком узкие.

Это довольно странно, потому что он работал раньше.

Обновление: В программном обеспечении ToolStripButtons есть определенные ошибки в AutoSize. Однако я нашел решение:

  1. Создать ToolStripButton.
  2. Создайте элемент управления меткой и задайте свойства шрифта в соответствии с вашей кнопкой.
  3. Установите текст этикетки в соответствии с вашей кнопкой.
  4. Установите ярлык на AutoSize.
  5. Прочитайте ширину метки и используйте ее для установки ширины ToolStripButton.

Это хакеры, но это работает.

 Смежные вопросы

  • Нет связанных вопросов^_^