KeyPressEventArgs (Clase)
Actualización: noviembre 2007
Proporciona datos del evento KeyPress.
Ensamblado: System.Windows.Forms (en System.Windows.Forms.dll)
KeyPressEventArgs especifica el carácter creado cuando el usuario presiona una tecla. Por ejemplo, cuando el usuario presiona MAYÚS + K, la propiedad KeyChar devuelve una K mayúscula.
Un evento KeyPress se produce cuando el usuario presiona una tecla. Dos eventos que están estrechamente relacionados con el evento KeyPress son KeyUp y KeyDown. El evento KeyDown precede a cada evento KeyPress cuando el usuario presiona una tecla, y un evento KeyUp se produce cuando el usuario suelta una tecla. Cuando el usuario mantiene presionada una tecla, se producen eventos KeyDown y KeyPress duplicados cada vez que se repite el carácter. Al soltar la tecla, se genera un evento KeyUp.
Con cada evento KeyPress, se pasa KeyPressEventArgs. KeyEventArgs se pasa con cada evento KeyDown y KeyUp. KeyEventArgs especifica si se presionaron teclas modificadoras (CTRL, MAYÚS o ALT) junto con otra tecla. (Esta información de las teclas modificadoras también puede obtenerse mediante la propiedad ModifierKeys de la clase Control.)
Establece Handled en true para cancelar el evento KeyPress. Esto evita que el control procese la acción de presionar la tecla.
Nota:
|
|---|
|
Algunos controles procesarán ciertas pulsaciones de teclas en KeyDown. Por ejemplo, RichTextBox procesa la tecla Entrar antes de que se llame a KeyPress. En casos como éste, no es posible cancelar el evento KeyPress y en su lugar debe cancelarse la pulsación de tecla desde KeyDown. |
Para obtener información acerca del modelo de eventos, vea Eventos y delegados.
En el siguiente ejemplo se ilustra el uso de KeyPressEventArgs para contar teclas a medida que se presionan y mostrar el resultado después de presionar cada tecla. Handled se establece en true para evitar que el sistema operativo procese más la clave. En el ejemplo se supone la existencia de un formulario con un control TextBox colocado en él.
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 static long keyPressCount = 0;
private static long backspacePressed = 0;
private static long returnPressed = 0;
private static long escPressed = 0;
private TextBox textBox1 = new TextBox();
private void MyKeyCounter(Object sender, KeyPressEventArgs ex)
{
switch(ex.get_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;
default :
// Counts all other keys.
keyPressCount = keyPressCount + 1;
break;
}
textBox1.set_Text(backspacePressed + " backspaces pressed\r\n"
+ escPressed + " escapes pressed\r\n" + returnPressed
+ " returns pressed\r\n"+keyPressCount + " other keys pressed\r\n");
ex.set_Handled(true);
} //MyKeyCounter
} //MyKeyPressClass
Se debe crear una nueva instancia de esta clase. También se debe establecer el controlador de eventos. Esto se puede realizar en el constructor de la clase.
myKeyPressClass myKeyPressHandler = new myKeyPressClass(); public Form1() { InitializeComponent(); textBox1.KeyPress += new KeyPressEventHandler(myKeyPressHandler.myKeyCounter); }
Al provocarse el evento especificado en el control, se llama al método asociado y la aplicación puede ejecutar código en respuesta al evento.
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Nota: