Windows forms key pressed

Control. On Key Press(KeyPressEventArgs) Метод

Определение

Вызывает событие KeyPress. Raises the KeyPress event.

Параметры

Объект KeyPressEventArgs, содержащий данные события. A KeyPressEventArgs that contains the event data.

Примеры

В следующем примере кода событие используется KeyPress для предотвращения ввода символов в элемент управления. The following code example uses the KeyPress event to prevent characters from entering the control.

Комментарии

При возникновении события через делегат вызывается обработчик события. Raising an event invokes the event handler through a delegate. Дополнительные сведения см. в разделе обработка и вызов событий. For more information, see Handling and Raising Events.

Метод OnKeyPress также позволяет производным классам обрабатывать событие, не присоединяя делегат. The OnKeyPress method also allows derived classes to handle the event without attaching a delegate. Это предпочтительная методика обработки событий в производном классе. This is the preferred technique for handling the event in a derived class.

Примечания для тех, кто наследует этот метод

При переопределении метода OnKeyPress(KeyPressEventArgs) в производном классе нужно убедиться, что вызывается метод OnKeyPress(KeyPressEventArgs) базового класса, чтобы зарегистрированные делегаты получили событие. When overriding OnKeyPress(KeyPressEventArgs) in a derived class, be sure to call the base class’s OnKeyPress(KeyPressEventArgs) method so that registered delegates receive the event.

Key Press Event Args Класс

Определение

Предоставляет данные для события KeyPress. Provides data for the KeyPress event.

Примеры

В следующем примере показано использование параметра KeyPressEventArgs для подсчета ключей при их нажатии и отображение результатов после каждого нажатия клавиши. The following example illustrates using the KeyPressEventArgs to count keys as they are pressed and to display the results after each key press. Handled затем принимает значение true, чтобы операционная система не продолжала обрабатывать ключ. Handled is then set to true to keep the operating system from further processing the key. В примере предполагается наличие формы с TextBox помещенным на нее. The example assumes a form with a TextBox placed on it.

Необходимо создать новый экземпляр этого класса. You must create a new instance of this class. Необходимо также задать обработчик событий. You must also set the event handler. Это можно сделать в конструкторе для класса. You can do this in the constructor for your class.

При возникновении указанного события в элементе управления вызывается присоединенный метод, и приложение может выполнить код в ответ на событие. When the specified event is raised in the control, the attached method is called and the application can execute code in response to the event.

Комментарии

KeyPressEventArgsУказывает символ, который формируется, когда пользователь нажимает клавишу. A KeyPressEventArgs specifies the character that is composed when the user presses a key. Например, когда пользователь нажимает SHIFT + K, KeyChar свойство возвращает прописную букву k. For example, when the user presses SHIFT + K, the KeyChar property returns an uppercase K.

KeyPressСобытие возникает, когда пользователь нажимает клавишу. A KeyPress event occurs when the user presses a key. Два события, тесно связанных с KeyPress событием, — это KeyUp и KeyDown . Two events that are closely related to the KeyPress event are KeyUp and KeyDown. KeyDownСобытие предшествует каждому KeyPress событию, когда пользователь нажимает клавишу, и KeyUp событие возникает, когда пользователь отпускает ключ. The KeyDown event precedes each KeyPress event when the user presses a key, and a KeyUp event occurs when the user releases a key. Когда пользователь удерживает ключ, повторяющиеся KeyDown KeyPress события и возникают каждый раз при повторении символа. When the user holds down a key, duplicate KeyDown and KeyPress events occur each time the character repeats. KeyUpПри выпуске создается одно событие. One KeyUp event is generated upon release.

Читайте также:  Тех поддержка windows live

При каждом KeyPress событии KeyPressEventArgs передается значение. With each KeyPress event, a KeyPressEventArgs is passed. KeyEventArgsПередается с каждым KeyDown KeyUp событием и. A KeyEventArgs is passed with each KeyDown and KeyUp event. KeyEventArgsУказывает, были ли нажаты все клавиши-модификаторы (Ctrl, Shift или Alt) вместе с другим ключом. A KeyEventArgs specifies whether any modifier keys (CTRL, SHIFT, or ALT) were pressed along with another key. (Эти сведения об модификаторе также можно получить с помощью ModifierKeys свойства Control класса.) (This modifier information can also be obtained through the ModifierKeys property of the Control class.)

Задайте Handled для значение, true чтобы отменить KeyPress событие. Set Handled to true to cancel the KeyPress event. Это позволяет элементу управления обрабатывать нажатие клавиши. This keeps the control from processing the key press.

Некоторые элементы управления обрабатывают определенные клавиши KeyDown . Some controls will process certain key strokes on KeyDown. Например, RichTextBox обрабатывает клавишу ВВОД перед KeyPress вызовом метода. For example, RichTextBox processes the Enter key before KeyPress is called. В таких случаях нельзя отменить KeyPress событие, а KeyDown вместо этого отменить его. In such cases, you cannot cancel the KeyPress event, and must cancel the key stroke from KeyDown instead.

Дополнительные сведения о модели событий см. в разделе обработка и вызов событий. For information about the event model, see Handling and Raising Events.

Конструкторы

Инициализирует новый экземпляр класса KeyPressEventArgs. Initializes a new instance of the KeyPressEventArgs class.

Свойства

Возвращает или задает значение, показывающее, было ли обработано событие KeyPress. Gets or sets a value indicating whether the KeyPress event was handled.

Возвращает или задает символ, соответствующий нажатой клавише. Gets or sets the character corresponding to the key pressed.

Методы

Определяет, равен ли указанный объект текущему объекту. Determines whether the specified object is equal to the current object.

(Унаследовано от Object) GetHashCode()

Служит хэш-функцией по умолчанию. Serves as the default hash function.

(Унаследовано от Object) GetType()

Возвращает объект Type для текущего экземпляра. Gets the Type of the current instance.

(Унаследовано от Object) MemberwiseClone()

Создает неполную копию текущего объекта Object. Creates a shallow copy of the current Object.

(Унаследовано от Object) ToString()

Возвращает строку, представляющую текущий объект. Returns a string that represents the current object.

Form. Key Preview Свойство

Определение

Возвращает или задает значение, указывающее, получит ли форма события клавиш перед передачей событий элементу управления, на который установлен фокус. Gets or sets a value indicating whether the form will receive key events before the event is passed to the control that has focus.

Читайте также:  Диагностика оперативной памяти linux

Значение свойства

Значение true , если форма получит все события клавиш; значение false , если выбранный в настоящее время элемент управления в форме получает события клавиш. true if the form will receive all key events; false if the currently selected control on the form receives key events. Значение по умолчанию — false . The default is false .

Примеры

В следующем примере демонстрируется установка свойства формы KeyPreview в значение true и обработка ключевых событий на уровне формы. The following example demonstrates setting a form’s KeyPreview property to true and handling the key events at the form level. Чтобы выполнить пример, вставьте следующий код в пустую форму. To run the example, paste the following code in a blank form.

Комментарии

Если для этого свойства задано значение true , форма будет принимать все KeyPress KeyDown события, и KeyUp . When this property is set to true , the form will receive all KeyPress, KeyDown, and KeyUp events. После того как обработчики событий формы завершили обработку нажатия клавиши, нажатие клавиши будет назначено элементу управления с фокусом. After the form’s event handlers have completed processing the keystroke, the keystroke is then assigned to the control with focus. Например, если KeyPreview свойство имеет значение, true а текущий выбранный элемент управления — TextBox , после того, как нажатие клавиши будет обработано обработчиками событий формы, TextBox элемент управления получит нажатую клавишу. For example, if the KeyPreview property is set to true and the currently selected control is a TextBox, after the keystroke is handled by the event handlers of the form the TextBox control will receive the key that was pressed. Чтобы обработчики событий клавиатуры обрабатывались только на уровне формы и не позволяли элементам управления принимать события клавиатуры, задайте KeyPressEventArgs.Handled для свойства в KeyPress обработчике событий формы значение true . To handle keyboard events only at the form level and not allow controls to receive keyboard events, set the KeyPressEventArgs.Handled property in your form’s KeyPress event handler to true .

Это свойство можно использовать для обработки большинства нажатий клавиш в приложении и либо для обработки нажатия клавиши, либо для вызова соответствующего элемента управления для обработки нажатия клавиши. You can use this property to process most keystrokes in your application and either handle the keystroke or call the appropriate control to handle the keystroke. Например, если приложение использует ключи функций, может потребоваться обработать нажатия клавиш на уровне формы, а не писать код для каждого элемента управления, который может принимать события нажатия. For example, when an application uses function keys, you might want to process the keystrokes at the form level rather than writing code for each control that might receive keystroke events.

Если форма не имеет видимых или включенных элементов управления, она автоматически получает все события клавиатуры. If a form has no visible or enabled controls, it automatically receives all keyboard events.

Элемент управления в форме может быть запрограммирован на отмену принимаемых им нажатий клавиш. A control on a form may be programmed to cancel any keystrokes it receives. Поскольку элемент управления никогда не отправляет эти нажатия клавиш в форму, форма никогда не будет видеть их независимо от значения параметра KeyPreview . Since the control never sends these keystrokes to the form, the form will never see them regardless of the setting of KeyPreview.

Читайте также:  Windows нет свойств папки рабочего стола

Keypress

Че то все никак не получается обработать нажатие какой либо кнопки, и есть 2 вопроса:
1)если есть какой либо текстбокс или сомбобокс то как это сделать?
2)можно ли обработать если вообще нет никаких элементов ввода?как бы горячие клавишы сделать чтоб

Добавлено через 11 минут
обработать событие получилось в текстбоксе) а вот если нет ничего такого вообще как это будет?

KeyPress не срабатывает
Может хоть на этот вопрос ответят.. уже отчаялась,обрыла весь интернет и ничего не нашла. Есть.

Keypress для textbox
В textbox вводятся слова в одну строку, разделенные запятой,содержащие только заглавные латинские.

Не срабатывает KeyPress у textBox
Всем привет! Изучаю C# и Windows Forms. Рассматривал примеры из книги Культина. Вот, например.

Не срабатывает событие KeyPress
private void textBox2_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) < .

Цифра 0 в левой части клавиатуры.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Событие KeyDown, KeyPress, KeyUp
Когда я пишу программы, это событии когда-то срабатывают, а когда-то нет. Что влияет на это? К.

Проверка символа в событии KeyPress
Ребят, кто знает, помогите. Я знаю как на Delphi написать обработчик событий нажатия клавиши, то.

Осуществление движения, используя KeyPress
Как осуществить движение объекта с благодаря KeyPress на стрелках клавиатуры?

KeyPress ограничить нажатия определённых клавиш
Пишу курсовую, для поля TextBox хочу поставить ограничение, чтобы можно было вводить только цифры.

Обработка KeyPress для нескольких TextBox C++
на форме имеется множество текстбоксов, я написал проверку на ввод только чисел, привязал к.

How to make a keypress form event in C#

I’m trying to make a KeyPress event on a form, but in this line I got an error MainWindow.KeyPress = new KeyPressEventArgs(Form_KeyPress); , I read the Microsoft Docs about events in C#, but I don’t get the idea.

Do listeners like in Java exist in C# or not?

2 Answers 2

You have several errors in your code.

MainWindow.KeyPress = new KeyPressEventArgs(Form_KeyPress);

1) KeyPress has KeyPressEventHandler type. Not KeyPressEventArgs . In C# classes which called . EventArgs are usually used as special objects that contains data about a raised event and them are inherited from EventArgs system class. And classes which called . EventHandlers are usually define wrapper for delegates and called events.

2) So KeyPress is event. If you want to subscribe this event you should use += operator. And method that you want to specify as handler should have signature void(object, KeyPressEventArgs) . Typical signature for events is void(object, . EventArgs)

private void Form_KeyPress(object sender, System.Windows.Forms.KeyEventArgs e)

3) As I said this method has wrong signature ( KeyPressEventArgs instead KeyEventArgs ).

4) It should be static . You can not use non-static class members in static method.

So your code should look like this:

Use listeners in C# is not good practice, but some frameworks use it. Usually events and callbacks is used.

And my last advice. May be you want to use the KeyDown event? The KeyPress is used for working with char input.

Оцените статью