ToolStrip StatusLabel Событие DoubleClick не возникает
У меня проблемы с подпиской на DoubleClick
событие для динамически создаваемого ToolStripStatusLabel
,
В моем коде я создаю серию ToolStripStatusLabel
предметы внутри StatusStrip
и подписаться на его DoubleClick
событие, но, похоже, оно никогда не поднимается
private void InitStatusBar()
{
foreach (CardReader cardReader in appConfig.CardReadersList)
{
System.Windows.Forms.ToolStripStatusLabel cardReaderStatusLabel = new ToolStripStatusLabel();
cardReaderStatusLabel.Name = cardReader.Description;
cardReaderStatusLabel.Tag = cardReader;
cardReaderStatusLabel.Text = cardReader.Description.ToUpper();
cardReaderStatusLabel.Image = cardReader.DeviceInfo.GetIconImage();
cardReaderStatusLabel.DoubleClick += new System.EventHandler(this.cardReaderStatusLabel_DoubleClick);
this.statusStripBottom.Items.Add(cardReaderStatusLabel);
this.statusStripBottom.Refresh();
}
}
private void cardReaderStatusLabel_DoubleClick(object sender, EventArgs e)
{
ToolStripStatusLabel clickedToolStripLabel = (ToolStripStatusLabel)sender;
CardReader taggedCardReader = (CardReader)clickedToolStripLabel.Tag;
MessageBox.Show("Lector: " + taggedCardReader.Description + Environment.NewLine + "Status: " + taggedCardReader.DeviceInfo.CardReaderStatusString);
}
StatusStrip
правильно инициализируется (метки состояния добавляются и отображаются в строке состояния), но когда я дважды щелкаю по ним, ничего не происходит:(
Я что-то упускаю?
Спасибо:)
1 ответ
Вы должны установить DoubleClickEnabled
свойство для этих предметов в true
тогда ты справишься DoubleClick
событие для вашего ToolStripItem
,
ToolStripItem
обрабатывает двойной щелчок в своем собственном внутреннем методе HanldeMouseUp
, В методе это проверяет DoubleClickEnabled
свойство и на основе тиков между мышью вверх и последним кликом, решить, должно ли оно вызвать событие двойного щелчка.