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;
    }
}