Дважды щелкните форму Windows в C # - PullRequest
1 голос
/ 23 ноября 2010

Как я могу определить, какая кнопка мыши дважды щелкнула по форме, то есть влево, вправо или в середине?

Обновлен: Я использую .NET2.0

Ответы [ 4 ]

2 голосов
/ 23 ноября 2010

Сохраните последнюю нажатую кнопку в событии MouseUp , а затем проверьте это в событии двойного щелчка.Пример кода:

MouseButtons _lastButtonUp = MouseButtons.None;

private void Form1_MouseUp(object sender, MouseEventArgs e)
{
    _lastButtonUp = e.Button;
}

private void Form1_DoubleClick(object sender, EventArgs e)
{
    switch (_lastButtonUp)
    {
        case System.Windows.Forms.MouseButtons.Left:
            MessageBox.Show("left double click");
            break;
        case System.Windows.Forms.MouseButtons.Right:
            MessageBox.Show("right double click");
            break;
        case System.Windows.Forms.MouseButtons.Middle:
            MessageBox.Show("middle double click");
            break;
    }

}
2 голосов
/ 23 ноября 2010

Посмотрите на MouseDoubleClick и MouseEventArgs и Перечисление MouseButtons

MouseDoubleClick - одно из событий формы.

1 голос
/ 23 ноября 2010

В событии Whwhat_Click или DoubleClick вы можете проверить MouseEventArgs e, в котором указано, какая клавиша была нажата.

 private void Form1_MouseDoubleClick(object sender, MouseEventArgs e)
 {
    if (e.Button == MouseButtons.Left)
       Console.WriteLine("Left Mouse Button was clicked!");
    else if (e.Button == MouseButtons.Middle)
       Console.WriteLine("Middle Mouse Button was clicked!");
 } 

Другие кнопки включают MouseButtons.Right, MouseButtons.Left

0 голосов
/ 23 ноября 2010

in form_MouseDoubleClick событие, которое вы можете отследить

void Form1_MouseDoubleClick(object sender, MouseEventArgs e)
 {
    if (e.Button == MouseButtons.Left)
       {
            // Do Operation
       }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...