Осуществление ввода мышью в Windows Forms
Получение ввода с помощью мыши и его обработка является важной частью каждого приложения Windows. Вы можете управлять событиями мыши для выполнения действия в приложении или использовать сведения о расположении мыши для тестирования или выполнения других действий. Кроме того, можно изменить способ, который элементы управления в приложении применяют для обработки ввода с помощью мыши. В этом разделе подробно описываются события мыши, а также способы получения и изменения системных параметров мыши. Дополнительные сведения о данных, предоставляемых с помощью событий мыши, и порядке возникновения событий щелчка мыши см. в разделе События мыши в Windows Forms.
Расположение мыши и тестирование
Когда пользователь двигает мышь, операционная система перемещает указатель мыши. Указатель мыши содержит один пиксель, называемый активной точкой указателя мыши, которую операционная система отслеживает и распознает как расположение указателя. Когда пользователь перемещает мышь или нажимает кнопку мыши, Control, который содержит HotSpot, вызывает соответствующее событие мыши. Текущее расположение мыши можно получить с помощью свойства Location элемента MouseEventArgs при обработке события мыши или с помощью свойства Position класса Cursor. Затем можно использовать сведения о расположении мыши для тестирования, а затем выполнить действие в зависимости от расположения мыши. Функция тестирования встроена в несколько элементов управления в Windows Forms, таких как ListView, TreeView, MonthCalendar и элементы управления DataGridView. При использовании с соответствующим событием мыши, например MouseHover, тестирование очень полезно для определения того, когда приложение должно выполнить конкретное действие.
События мыши
Основной способ реагирования на ввод с помощью мыши заключается в обработке событий мыши. В следующей таблице показаны события мыши и описание их возникновения.
Событие мыши | Description |
---|---|
Click | Это событие возникает при отпускании кнопки мыши, как правило, перед событием MouseUp. Обработчик этого события принимает аргумент типа EventArgs. Обрабатывать это событие следует в случае, если нужно только определить, когда происходит щелчок. |
MouseClick | Это событие возникает, когда пользователь щелкает элемент управления. Обработчик этого события принимает аргумент типа MouseEventArgs. Обрабатывать это событие следует в случае, когда необходимо получить сведения о мыши при щелчке. |
DoubleClick | Это событие происходит при двойном щелчке элемента управления. Обработчик этого события принимает аргумент типа EventArgs. Обрабатывать это событие следует в случае, если нужно только определить, когда происходит двойной щелчок. |
MouseDoubleClick | Это событие возникает, когда пользователь дважды щелкает мышью. Обработчик этого события принимает аргумент типа MouseEventArgs. Обрабатывать это событие следует в случае, когда необходимо получить сведения о мыши при двойном щелчке. |
MouseDown | Это событие происходит при нажатии пользователем кнопки мыши, когда указатель мыши находится на элементе управления. Обработчик этого события принимает аргумент типа MouseEventArgs. |
MouseEnter | Это событие возникает, когда указатель мыши перемещается на границу или клиентскую область элемента управления в зависимости от типа элемента управления. Обработчик этого события принимает аргумент типа EventArgs. |
MouseHover | Это событие возникает при остановке и помещении указателя мыши на элемент управления. Обработчик этого события принимает аргумент типа EventArgs. |
MouseLeave | Это событие возникает, когда указатель мыши покидает границу или клиентскую область элемента управления в зависимости от типа элемента управления. Обработчик этого события принимает аргумент типа EventArgs. |
MouseMove | Это событие возникает при перемещении указателя мыши на элемент управления. Обработчик этого события принимает аргумент типа MouseEventArgs. |
MouseUp | Это событие возникает, когда указатель мыши находится на элементе управления и пользователь отпускает кнопку мыши. Обработчик этого события принимает аргумент типа MouseEventArgs. |
MouseWheel | Это событие возникает, когда пользователь вращает колесико мыши, когда фокус находится на элементе управления. Обработчик этого события принимает аргумент типа MouseEventArgs. Для определения того, насколько прокручено колесико мыши, можно использовать свойство Delta элемента MouseEventArgs. |
Изменение параметров ввода и системы обнаружения с помощью мыши
Вы можете определить и изменить способ обработки элементами управления ввода с помощью мыши с помощью производного от элемента управления и использования методов GetStyle и SetStyle. Метод SetStyle принимает побитовое сочетание значений ControlStyles, чтобы определить, будет ли для элемента управления осуществлено стандартное нажатие, двойное нажатие кнопки мыши или элемент управления будет обрабатывать действие мыши самостоятельно. Кроме того, класс SystemInformation содержит свойства, описывающие возможности мыши и определяющие взаимодействие мыши с операционной системой. Эти свойства кратко представлены в следующей таблице.
Свойство | Description |
---|---|
DoubleClickSize | Возвращает размеры (в пикселях) области, в которой пользователь должен щелкнуть дважды, чтобы операционная система обработала два щелчка как двойной щелчок. |
DoubleClickTime | Возвращает максимальное число миллисекунд, которое может пройти между первым и вторым щелчком, чтобы операционная система рассматривала эти действия как двойной щелчок. |
MouseButtons | Возвращает число кнопок мыши. |
MouseButtonsSwapped | Возвращает значение, указывающее, могут ли меняться местами функции левой и правой кнопок мыши. |
MouseHoverSize | Возвращает размеры прямоугольника (в пикселях), в котором должен находиться указатель мыши в течение времени наведения мыши перед тем, как создается сообщение о наведении мыши. |
MouseHoverTime | Возвращает интервал времени (в миллисекундах), в течение которого указатель мыши должен оставаться в прямоугольнике наведения перед тем, как вызывается сообщение о наведении мыши. |
MousePresent | Получает значение, указывающее, установлена ли мышь. |
MouseSpeed | Получает значение, указывающее текущую скорость перемещения указателя мыши (от 1 до 20). |
MouseWheelPresent | Возвращает значение, указывающее, установлена ли мышь с колесом прокрутки. |
MouseWheelScrollDelta | Возвращает значение смещения, вызываемого поворотом колесика мыши на одно деление. |
MouseWheelScrollLines | Возвращает число строк, прокручиваемых при вращении колесика мыши. |
См. также
.NET Desktop feedback
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по