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 свойство и на основе тиков между мышью вверх и последним кликом, решить, должно ли оно вызвать событие двойного щелчка.

Другие вопросы по тегам