KeyPressEventArgs Osztály

Definíció

Adatokat biztosít az KeyPress eseményhez.

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
Öröklődés
KeyPressEventArgs
Attribútumok

Példák

Az alábbi példa bemutatja, hogy a KeyPressEventArgs lenyomott kulcsok megszámlálására és az egyes billentyűk lenyomása utáni eredmények megjelenítésére szolgálnak. Handled ezután igaz értékre van állítva, hogy az operációs rendszer ne dolgozza fel tovább a kulcsot. A példa egy olyan űrlapot feltételez, amelyre egy TextBox adott elemet helyeztek el.

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

Létre kell hoznia egy új példányt ennek az osztálynak. Az eseménykezelőt is be kell állítania. Ezt az osztály konstruktorában teheti meg.

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

Amikor a megadott esemény megjelenik a vezérlőben, a rendszer meghívja a csatolt metódust, és az alkalmazás az eseményre válaszul kódot hajthat végre.

Megjegyzések

Az A KeyPressEventArgs azt a karaktert adja meg, amely akkor áll össze, amikor a felhasználó lenyom egy billentyűt. Ha például a felhasználó lenyomja a SHIFT + K billentyűkombinációt, a KeyChar tulajdonság egy nagybetűs K értéket ad vissza.

Esemény KeyPress akkor következik be, ha a felhasználó lenyom egy billentyűt. Az eseményhez szorosan kapcsolódó két esemény az KeyPress és KeyUpa KeyDown . Az KeyDown esemény minden KeyPress eseményt megelőz, amikor a felhasználó lenyom egy kulcsot, és egy KeyUp esemény akkor következik be, amikor a felhasználó kiad egy kulcsot. Amikor a felhasználó lenyom egy kulcsot, ismétlődő KeyDown és KeyPress események történnek minden alkalommal, amikor a karakter ismétlődik. A kiadáskor egy KeyUp esemény jön létre.

Minden KeyPress eseménynél a rendszer átad egy-egy eseményt KeyPressEventArgs . Mindegyik KeyEventArgs és esemény esetében KeyDownKeyUp a rendszer A-t ad át. Az A KeyEventArgs azt határozza meg, hogy a módosító billentyűket (CTRL, SHIFT vagy ALT) egy másik kulccsal együtt lenyomták-e. (Ez a módosító információ az ModifierKeys osztály tulajdonságán Control keresztül is beszerezhető.)

Állítsa be Handled az true esemény megszakítására KeyPress . Ez megakadályozza, hogy a vezérlő feldolgozsa a billentyűt.

Note

Egyes vezérlők bizonyos billentyűvonásokat feldolgoznak a következőn KeyDown: . Például RichTextBox feldolgozza az Enter billentyűt, mielőtt KeyPress meghívják. Ilyen esetekben nem mondhatja le az eseményt KeyPress , és inkább a billentyűvonást KeyDown kell megszakítania.

Az eseménymodellről további információt az Események kezelése és emelése című témakörben talál.

Konstruktorok

Name Description
KeyPressEventArgs(Char)

Inicializálja a KeyPressEventArgs osztály új példányát.

Tulajdonságok

Name Description
Handled

Lekéri vagy beállít egy értéket, amely jelzi, hogy az KeyPress eseményt kezelték-e.

KeyChar

Lekéri vagy beállítja a lenyomott kulcsnak megfelelő karaktert.

Metódusok

Name Description
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

A következőre érvényes:

Lásd még