Sdílet prostřednictvím


KeyPressEventArgs Třída

Definice

Poskytuje data pro událost 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
Dědičnost
KeyPressEventArgs
Atributy

Příklady

Následující příklad znázorňuje použití KeyPressEventArgs kláves k počítání kláves při jejich stisknutí a zobrazení výsledků po každém stisknutí klávesy. Handled je pak nastavena na hodnotu true, aby operační systém dál zpracovával klíč. Příklad předpokládá formulář s umístěnou na TextBox něm.

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

Musíte vytvořit novou instanci této třídy. Musíte také nastavit obslužnou rutinu události. Můžete to udělat v konstruktoru pro vaši třídu.

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

Při vyvolání zadané události v ovládacím prvku je volána připojená metoda a aplikace může spustit kód v reakci na událost.

Poznámky

Určuje KeyPressEventArgs znak, který se skládá, když uživatel stiskne klávesu. Když například uživatel stiskne shift+K, KeyChar vrátí tato vlastnost velká písmena K.

K KeyPress události dojde, když uživatel stiskne klávesu. Dvě události, které úzce souvisejí s KeyPress událostí, jsou KeyUp a KeyDown. Událost KeyDown předchází každé KeyPress události, když uživatel stiskne klávesu, a KeyUp událost nastane, když uživatel uvolní klíč. Když uživatel podrží klíč, duplikuje KeyDown se a KeyPress při každém opakování znaku dojde k událostem. Při vydání se vygeneruje jedna KeyUp událost.

S každou KeyPress událostí se předává.KeyPressEventArgs A KeyEventArgs se předává s každou KeyDownKeyUp událostí. Určuje KeyEventArgs , zda byly spolu s jinou klávesou stisknuty modifikační klávesy (CTRL, SHIFT nebo ALT). (Tyto modifikační informace lze získat také prostřednictvím ModifierKeys vlastnosti Control třídy.)

Nastavte Handled na true zrušení KeyPress události. Díky tomu bude ovládací prvek zpracovávat stisknutí klávesy.

Poznámka:

Některé ovládací prvky budou zpracovávat určité tahy kláves .KeyDown Například RichTextBox zpracuje klávesu Enter před KeyPress zavolání. V takových případech nemůžete událost zrušit KeyPress a místo toho musíte zrušit tah KeyDown klávesy.

Informace o modelu událostí naleznete v tématu Zpracování a vyvolávání událostí.

Konstruktory

Name Description
KeyPressEventArgs(Char)

Inicializuje novou instanci KeyPressEventArgs třídy.

Vlastnosti

Name Description
Handled

Získá nebo nastaví hodnotu určující, zda KeyPress byla událost zpracována.

KeyChar

Získá nebo nastaví znak odpovídající stisknutí klávesy.

Metody

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro

Viz také