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


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
Атрибуты

Примеры

В следующем примере показано использование счетчика 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 событием, и KeyDownKeyUp . Событие 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)

Применяется к

См. также раздел