Поделиться через


Ввод данных пользователем в приложении Windows Forms

В Windows Forms вводимые пользователем данные отправляются в приложения в виде сообщений Windows. Ряд переопределяемых методов обрабатывает эти сообщения на уровне приложения, формы и элемента управления. Когда эти методы получают сообщения мыши и клавиатуры, они вызывают события, которые могут быть обработаны для получения сведений о вводе с помощью клавиатуры. Во многих случаях приложения Windows Forms способны обрабатывать все вводимые пользователем данные, просто обрабатывая эти события. В других случаях может потребоваться переопределить в приложении один из методов, обрабатывающих сообщения, чтобы перехватить конкретное сообщение, прежде чем оно будет получено приложением, формой или элементом управления.

События мыши и клавиатуры

Все элементы управления Windows Forms наследуют набор событий, связанных с вводом с помощью мыши и клавиатуры. Например, элемент управления может обработать событие KeyPress, чтобы определить код символа нажатой клавиши, или элемент управления может обработать события MouseClick, чтобы определить расположение щелчка мыши. Дополнительные сведения о событиях мыши и клавиатуры см. в разделе Использование событий клавиатуры и События мыши в Windows Forms.

Методы, обрабатывающие сообщения ввода пользователя

Формы и элементы управления имеют доступ к интерфейсу IMessageFilter и набору переопределяемых методов, которые обрабатывают сообщения Windows в различных точках очереди сообщений. Все эти методы имеют параметр Message, который инкапсулирует низкоуровневые сведения о сообщениях Windows. Можно реализовать или переопределить эти методы, чтобы проанализировать сообщение, а затем либо использовать сообщение, либо передать его следующему потребителю в очереди сообщений. В следующей таблице представлены методы, обрабатывающие все сообщения Windows в Windows Forms.

Метод Примечания.
PreFilterMessage Метод перехватывает сообщения в очереди (также известные как отправленные сообщения) на уровне приложения.
PreProcessMessage Метод перехватывает сообщения Windows на уровне формы и элемента управления до их обработки.
WndProc Метод обрабатывает сообщения Windows на уровне формы и элемента управления.
DefWndProc Метод выполняет обработку сообщений Windows по умолчанию на уровне формы и элемента управления. Это обеспечивает минимальную функциональность окна.
OnNotifyMessage Метод перехватывает сообщения на уровне формы и элемента управления после их обработки. Для вызова этого метода необходимо задать бит стиля EnableNotifyMessage.

Сообщения клавиатуры и мыши также обрабатываются дополнительным набором переопределяемых методов, характерных для этих типов сообщений. Дополнительные сведения см. в разделе Ввод с помощью клавиатуры и Ввод с помощью мыши в Windows Forms.

См. также