Почему при нажатии кнопки мыши происходит событие "перемещение мыши"? - C#
Формулировка задачи:
Просто нажал на левую кнопку мыши и сразу же отпустил. А сам указатель мыши находится на месте
Почему в этом случает возникает событие "перемещение мыши"?
Решение задачи: «Почему при нажатии кнопки мыши происходит событие "перемещение мыши"?»
textual
Листинг программы
using System;
using System.Windows.Forms;
class MyButtonClass : Form
{
private Button mrButton;
// метод-конструктор
public MyButtonClass()
{
// форма
this.MouseDown += new MouseEventHandler(TheMouseIsDown);
this.MouseDoubleClick += new MouseEventHandler(TheMouseIsDoubleClick);
this.MouseMove += new MouseEventHandler(TheMouseMove);
// кнопка
mrButton = new Button();
mrButton.Text = "Нажми";
mrButton.Left = 100;
mrButton.Top = 100;
mrButton.Width = 70;
mrButton.Height = 50;
mrButton.Click += new System.EventHandler(MyButtonClick);
this.Controls.Add(mrButton);
}
// основной метод
static void Main()
{
Application.Run(new MyButtonClass());
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.Left = 0;
this.Top = 0;
this.Width = 500;
this.Height = 300;
}
// метод-обработчик события для кнопки
void MyButtonClick(object sender, EventArgs e)
{
mrButton.Text = "Вы нажали на кнопку!";
}
// метод-обработчик события для мыши (нажатие кнопки)
void TheMouseIsDown(object sender, MouseEventArgs e)
{
if (e.Button==MouseButtons.Left) this.Text = "Была нажата левая кнопка мыши. [" + e.X + ", " + e.Y + "]";
else if (e.Button==MouseButtons.Middle) this.Text = "Была нажата средняя кнопка мыши. [" + e.X + ", " + e.Y + "]";
else if (e.Button==MouseButtons.Right) this.Text = "Была нажата правая кнопка мыши. [" + e.X + ", " + e.Y + "]";
}
// метод-обработчик события для мыши (двойной щелчок)
void TheMouseIsDoubleClick(object sender, MouseEventArgs e)
{
if (e.Button==MouseButtons.Left) this.Text = "Двойной щелчок левой кнопкой мыши";
else if (e.Button==MouseButtons.Middle) this.Text = "Двойной щелчок средней кнопкой мыши";
else if (e.Button==MouseButtons.Right) this.Text = "Двойной щелчок правой кнопкой мыши";
}
// метод-обработчик события для мыши (пермещение мыши)
void TheMouseMove(object sender, MouseEventArgs e)
{
this.Text = "Перемещение мыши. [" + e.X + ", " + e.Y + "]";
}
}