ToolStrip StatusLabel DoubleClick事件不会引发

Kai*_*kus 2 .net c# events toolstrip winforms

我无法订阅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);

}
Run Code Online (Sandbox Code Playgroud)

StatusStrip正确初始化(状态标签添加和在状态条显示),但是当他们我双击,什么都不会发生:(

有什么我想念的吗?

谢谢 :)

Rez*_*aei 5

您应该将DoubleClickEnabled这些项目的属性设置为true,然后才能处理的DoubleClick事件ToolStripItem

ToolStripItem用自己的内部方法处理双击HanldeMouseUp。在该方法中,它检查DoubleClickEnabled属性,并根据鼠标上移和最后单击之间的滴答声确定是否应引发双击事件。