C # MouseClick Событие не запускается при среднем или правом щелчке - PullRequest
0 голосов
/ 06 октября 2018

Кажется, это должно работать, но это не так.Я поставил точку отладки в операторе SWITCH.Это событие срабатывает только по левому клику.Ничего не происходит, и метод не запускается по среднему или правому щелчку.Есть идеи?PS Я уже пробовал использовать события 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;
    }
}

Ответы [ 3 ]

0 голосов
/ 11 ноября 2018

Вам нужно только установить для атрибута ShortcutsEnabled значение False для этого текстового поля и написать свой код для события MouseDown.

Это будет работать.

0 голосов
/ 12 ноября 2018

Вам нужно использовать событие MouseDown , чтобы перехватывать щелчки средней и правой кнопкой мыши.События Click или MouseClick слишком поздние в конвейере и возвращаются к поведению контекстного меню ОС по умолчанию для текстовых полей.

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;
    }
}
0 голосов
/ 06 октября 2018

Вы пытались установить остановку при объявлении события?Также проверьте это нажатием средней кнопки мыши

if e.Button = 4194304 Then
    a = b //set the stop here
End if

Если событие не запускается даже при остановке в объявлении события, что-то не так с проектом, создайте новое и протестируйте.

...