ToolStrip StatusLabel DoubleClick 事件不会引发
ToolStrip StatusLabel DoubleClick Event Doesn't Raise
我在订阅动态创建的 ToolStripStatusLabel
的 DoubleClick
事件时遇到问题。
在我的代码中,我在 StatusStrip
中创建了一系列 ToolStripStatusLabel
项目,并订阅了它的 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
已正确初始化(状态标签已添加并显示在状态条中)但是当我双击它们时,没有任何反应:(
有什么我遗漏的吗?
谢谢:)
您应该将这些项目的 DoubleClickEnabled
属性 设置为 true
,然后您可以处理 ToolStripItem
的 DoubleClick
事件。
ToolStripItem
在其内部方法 HanldeMouseUp
中处理双击。在方法中,它检查 DoubleClickEnabled
属性 并根据鼠标向上和最后一次单击之间的滴答声,决定是否应该引发双击事件。
我在订阅动态创建的 ToolStripStatusLabel
的 DoubleClick
事件时遇到问题。
在我的代码中,我在 StatusStrip
中创建了一系列 ToolStripStatusLabel
项目,并订阅了它的 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
已正确初始化(状态标签已添加并显示在状态条中)但是当我双击它们时,没有任何反应:(
有什么我遗漏的吗?
谢谢:)
您应该将这些项目的 DoubleClickEnabled
属性 设置为 true
,然后您可以处理 ToolStripItem
的 DoubleClick
事件。
ToolStripItem
在其内部方法 HanldeMouseUp
中处理双击。在方法中,它检查 DoubleClickEnabled
属性 并根据鼠标向上和最后一次单击之间的滴答声,决定是否应该引发双击事件。