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 ukazuje použití funkce k KeyPressEventArgs počítání kláves při jejich stisknutí a k zobrazení výsledků po každém stisknutí klávesy. Handled Pak je nastavená na hodnotu true, aby operační systém zabránil dalšímu zpracování klíče. V příkladu se předpokládá formulář, na který je umístěna TextBox hodnota .

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

Je nutné vytvořit novou instanci této třídy. Musíte také nastavit obslužnou rutinu události. Můžete to provést 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

Když je v ovládacím prvku vyvolána zadaná událost, je volána přidružená metoda a aplikace může v reakci na událost spustit kód.

Poznámky

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

Když KeyPress uživatel stiskne klávesu, dojde k události. Dvě události, které s událostí KeyPress úzce souvisejí, 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íč, dojde při každém opakování znaku k duplicitním KeyDown událostem a KeyPress událostem. Při vydání se vygeneruje jedna KeyUp událost.

S každou KeyPress událostí se předá hodnota KeyPressEventArgs . Předá KeyEventArgs se společně s událostí a KeyDownKeyUp . Určuje KeyEventArgs , jestli byla stisknuta nějaká modifikační klávesa (CTRL, SHIFT nebo ALT) spolu s jinou klávesou. (Tyto informace o modifikátoru lze získat také prostřednictvím ModifierKeys vlastnosti Control třídy .)

Pokud chcete událost zrušitKeyPress, nastavte Handled na true hodnotu . Ovládací prvek tak zůstane mimo zpracování stisknutí klávesy.

Poznámka

Některé ovládací prvky budou zpracovávat určité klávesové tahy na KeyDown. RichTextBox Například zpracovává klávesu Enter před KeyPress je volána. V takových případech nelze událost zrušit KeyPress a musíte místo toho zrušit stisknutí klávesy.KeyDown

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

Konstruktory

KeyPressEventArgs(Char)

Inicializuje novou instanci KeyPressEventArgs třídy .

Vlastnosti

Handled

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

KeyChar

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

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

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

Slouží jako výchozí hashovací funkce.

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

Type Získá z aktuální instance.

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

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

(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é