C# MouseClick 事件不会在中键单击或右键单击时触发
C# MouseClick Event Doesn't Fire On Middle Click or Right Click
这似乎应该有效,但实际上无效。我在 SWITCH 语句上设置了调试停止。此事件仅在左键单击时触发。没有任何反应,方法不会在中键或右键单击时触发。有任何想法吗? P.S。我已经尝试使用 MouseUp 和 MouseDown 事件以及同样的问题。
这是我的代码:
this.textBox1.MouseClick +=
new System.Windows.Forms.MouseEventHandler(this.textBox1_MouseClick);
private void textBox1_MouseClick(object sender, MouseEventArgs e)
{
switch (e.Button)
{
case MouseButtons.Left:
// Left click
textBox1.Text = "left";
break;
case MouseButtons.Right:
// Right click
textBox1.Text = "right";
break;
case MouseButtons.Middle:
// Middle click
textBox1.Text = "middle";
break;
}
}
您是否尝试过设置事件声明停止?
也用鼠标中键点击测试这个
if e.Button = 4194304 Then
a = b //set the stop here
End if
如果事件声明停止后事件仍未触发,则项目有问题,重新创建一个并测试。
您只需将该文本框的属性 ShortcutsEnabled 设置为 False 并在 MouseDown 事件上编写代码。
它会起作用。
您需要使用 MouseDown event 来捕获鼠标中键和右键单击。 Click 或 MouseClick 事件在管道中为时已晚,被引用回默认的 OS 文本框的上下文菜单行为。
private void textBox1_MouseDown(object sender, MouseEventArgs e)
{
switch (e.Button)
{
case MouseButtons.Left:
// Left click
txt.Text = "left";
break;
case MouseButtons.Right:
// Right click
txt.Text = "right";
break;
case MouseButtons.Middle:
// Middle click
txt.Text = "middle";
break;
}
}
这似乎应该有效,但实际上无效。我在 SWITCH 语句上设置了调试停止。此事件仅在左键单击时触发。没有任何反应,方法不会在中键或右键单击时触发。有任何想法吗? P.S。我已经尝试使用 MouseUp 和 MouseDown 事件以及同样的问题。
这是我的代码:
this.textBox1.MouseClick +=
new System.Windows.Forms.MouseEventHandler(this.textBox1_MouseClick);
private void textBox1_MouseClick(object sender, MouseEventArgs e)
{
switch (e.Button)
{
case MouseButtons.Left:
// Left click
textBox1.Text = "left";
break;
case MouseButtons.Right:
// Right click
textBox1.Text = "right";
break;
case MouseButtons.Middle:
// Middle click
textBox1.Text = "middle";
break;
}
}
您是否尝试过设置事件声明停止? 也用鼠标中键点击测试这个
if e.Button = 4194304 Then
a = b //set the stop here
End if
如果事件声明停止后事件仍未触发,则项目有问题,重新创建一个并测试。
您只需将该文本框的属性 ShortcutsEnabled 设置为 False 并在 MouseDown 事件上编写代码。
它会起作用。
您需要使用 MouseDown event 来捕获鼠标中键和右键单击。 Click 或 MouseClick 事件在管道中为时已晚,被引用回默认的 OS 文本框的上下文菜单行为。
private void textBox1_MouseDown(object sender, MouseEventArgs e)
{
switch (e.Button)
{
case MouseButtons.Left:
// Left click
txt.Text = "left";
break;
case MouseButtons.Right:
// Right click
txt.Text = "right";
break;
case MouseButtons.Middle:
// Middle click
txt.Text = "middle";
break;
}
}