KeyPressEventArgs Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет данные о событии KeyPress.
public ref class KeyPressEventArgs : EventArgs
[System.Runtime.InteropServices.ComVisible(true)]
public class KeyPressEventArgs : EventArgs
public class KeyPressEventArgs : EventArgs
[<System.Runtime.InteropServices.ComVisible(true)>]
type KeyPressEventArgs = class
inherit EventArgs
type KeyPressEventArgs = class
inherit EventArgs
Public Class KeyPressEventArgs
Inherits EventArgs
- Наследование
- Атрибуты
Примеры
В следующем примере показано использование для подсчета KeyPressEventArgs клавиш при нажатии и отображения результатов после каждого нажатия клавиш. Handled Затем устанавливается значение true, чтобы операционная система не обрабатывала ключ. В примере предполагается, что на ней размещена TextBox форма.
public ref class myKeyPressClass
{
private:
static long keyPressCount = 0;
static long backspacePressed = 0;
static long returnPressed = 0;
static long escPressed = 0;
TextBox^ textBox1;
void myKeyCounter( Object^ sender, KeyPressEventArgs^ ex )
{
switch ( ex->KeyChar )
{
// Counts the backspaces.
case '\b':
backspacePressed = backspacePressed + 1;
break;
// Counts the ENTER keys.
case '\r':
returnPressed = returnPressed + 1;
break;
// Counts the ESC keys.
case (char)27:
escPressed = escPressed + 1;
break;
// Counts all other keys.
default:
keyPressCount = keyPressCount + 1;
break;
}
textBox1->Text = String::Concat(
backspacePressed, " backspaces pressed\r\n",
escPressed, " escapes pressed\r\n",
returnPressed, " returns pressed\r\n",
keyPressCount, " other keys pressed\r\n" );
ex->Handled = true;
}
};
public class myKeyPressClass
{
static long keyPressCount = 0 ;
static long backspacePressed = 0;
static long returnPressed = 0 ;
static long escPressed = 0 ;
private TextBox textBox1 = new TextBox();
private void myKeyCounter(object sender, KeyPressEventArgs ex)
{
switch(ex.KeyChar)
{
// Counts the backspaces.
case '\b':
backspacePressed = backspacePressed + 1;
break ;
// Counts the ENTER keys.
case '\r':
returnPressed = returnPressed + 1 ;
break ;
// Counts the ESC keys.
case (char)27:
escPressed = escPressed + 1 ;
break ;
// Counts all other keys.
default:
keyPressCount = keyPressCount + 1 ;
break;
}
textBox1.Text =
backspacePressed + " backspaces pressed\r\n" +
escPressed + " escapes pressed\r\n" +
returnPressed + " returns pressed\r\n" +
keyPressCount + " other keys pressed\r\n" ;
ex.Handled = true ;
}
}
Public Class myKeyPressClass
Private Shared keyPressCount As Long = 0
Private Shared backspacePressed As Long = 0
Private Shared returnPressed As Long = 0
Private Shared escPressed As Long = 0
Private textBox1 As TextBox
Private Sub myKeyCounter(sender As Object, ex As KeyPressEventArgs)
Select Case ex.KeyChar
' Counts the backspaces.
Case ControlChars.Back
backspacePressed = backspacePressed + 1
' Counts the ENTER keys.
Case ControlChars.Lf
returnPressed = returnPressed + 1
' Counts the ESC keys.
Case Convert.ToChar(27)
escPressed = escPressed + 1
' Counts all other keys.
Case Else
keyPressCount = keyPressCount + 1
End Select
textBox1.Text = backspacePressed & " backspaces pressed" & _
ControlChars.Lf & ControlChars.Cr & escPressed & _
" escapes pressed" & ControlChars.CrLf & returnPressed & _
" returns pressed" & ControlChars.CrLf & keyPressCount & _
" other keys pressed" & ControlChars.CrLf
ex.Handled = True
End Sub
End Class
Необходимо создать новый экземпляр этого класса. Необходимо также задать обработчик событий. Это можно сделать в конструкторе для класса .
public:
myKeyPressClass^ myKeyPressHandler;
Form1()
{
myKeyPressHandler = gcnew myKeyPressClass;
InitializeComponent();
textBox1->KeyPress += gcnew KeyPressEventHandler(
myKeyPressHandler, &myKeyPressClass::myKeyCounter );
}
myKeyPressClass myKeyPressHandler = new myKeyPressClass();
public Form1()
{
InitializeComponent();
textBox1.KeyPress += new KeyPressEventHandler(myKeyPressHandler.myKeyCounter);
}
Private myKeyPressHandler As New myKeyPressClass()
Public Sub New()
InitializeComponent()
AddHandler textBox1.KeyPress, AddressOf myKeyPressHandler.myKeyCounter
End Sub
При возникновении указанного события в элементе управления вызывается присоединенный метод, и приложение может выполнить код в ответ на событие .
Комментарии
Указывает KeyPressEventArgs символ, который создается при нажатии пользователем клавиши. Например, когда пользователь нажимает клавиши SHIFT+K, KeyChar свойство возвращает прописную букву K.
Событие KeyPress возникает, когда пользователь нажимает клавишу. Два события, тесно связанные с событием KeyPress : KeyUp и KeyDown. Событие KeyDown предшествует каждому KeyPress событию, когда пользователь нажимает клавишу, и KeyUp событие возникает, когда пользователь отпускает ключ. Когда пользователь удерживает ключ, при каждом повторе символа происходят повторяющиеся KeyDown события и KeyPress . Одно KeyUp событие создается после выпуска.
При каждом KeyPress событии KeyPressEventArgs передается . Передается KeyEventArgs с каждым KeyDown событием и KeyUp . Указывает KeyEventArgs , были ли нажаты какие-либо клавиши-модификаторы (CTRL, SHIFT или ALT) вместе с другой клавишей. (Эти сведения модификатора также можно получить с помощью ModifierKeys свойства Control класса .)
Задайте значение Handledtrue
, чтобы отменить KeyPress
событие. Это не позволяет элементу управления обрабатывать нажатие клавиши.
Примечание
Некоторые элементы управления будут обрабатывать определенные росчерки клавиш в KeyDown. Например, RichTextBox обрабатывает ключ ВВОД до KeyPress вызова . В таких случаях нельзя отменить KeyPress событие и вместо него необходимо отменить росчерк KeyDown ключа.
Сведения о модели событий см. в разделе Обработка и вызов событий.
Конструкторы
KeyPressEventArgs(Char) |
Инициализирует новый экземпляр класса KeyPressEventArgs. |
Свойства
Handled |
Возвращает или задает значение, показывающее, было ли обработано событие KeyPress. |
KeyChar |
Возвращает или задает символ, соответствующий нажатой клавише. |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |