Почему при нажатии кнопки мыши происходит событие "перемещение мыши"? - 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 + "]";
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы