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


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 : 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)

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

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