Leer en inglés

Compartir a través de


KeyEventArgs Clase

Definición

Proporciona datos para el evento KeyDown o KeyUp.

C#
[System.Runtime.InteropServices.ComVisible(true)]
public class KeyEventArgs : EventArgs
C#
public class KeyEventArgs : EventArgs
Herencia
KeyEventArgs
Atributos

Ejemplos

En los ejemplos de código siguientes se muestra cómo detectar el estado de una tecla presionada.

Ejemplo 1

En el ejemplo de código siguiente se muestra cómo usar el KeyDown evento con la Help clase para mostrar la Ayuda de estilo emergente al usuario de la aplicación. En el ejemplo se usan las KeyEventArgs propiedades que se pasan al método de controlador de eventos para filtrar todas las variaciones de presionar la tecla F1 con una tecla modificadora. Cuando el usuario presiona cualquier variación de F1 que incluye cualquier modificador de teclado, la Help clase muestra una ventana emergente, similar a , ToolTipcerca del control . Si el usuario presiona ALT+F2, se muestra una ventana emergente de Ayuda diferente con información adicional.

C#
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
    // Determine whether the key entered is the F1 key. If it is, display Help.
    if(e.KeyCode == Keys.F1 && (e.Alt || e.Control || e.Shift))
    {
        // Display a pop-up Help topic to assist the user.
        Help.ShowPopup(textBox1, "Enter your name.", new Point(textBox1.Bottom, textBox1.Right));
    }
    else if(e.KeyCode == Keys.F2 && e.Modifiers == Keys.Alt)
    {
        // Display a pop-up Help topic to provide additional assistance to the user.
        Help.ShowPopup(textBox1, "Enter your first name followed by your last name. Middle name is optional.",
            new Point(textBox1.Top, this.textBox1.Left));
    }
}

Ejemplo 2

En el ejemplo siguiente se determina si el usuario ha presionado ALT+E y si el puntero del mouse está sobre un TreeNode, permite al usuario editar ese TreeNode.

C#
private void treeView1_KeyDown(object sender, KeyEventArgs e)
{
   /* If the 'Alt' and 'E' keys are pressed,
      * allow the user to edit the TreeNode label. */
   if(e.Alt && e.KeyCode == Keys.E)
         
   {
      treeView1.LabelEdit = true;
      // If there is a TreeNode under the mouse cursor, begin editing. 
      TreeNode editNode = treeView1.GetNodeAt(
         treeView1.PointToClient(System.Windows.Forms.Control.MousePosition));
      if(editNode != null)
      { 
         editNode.BeginEdit();
      }
   }
}

private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
{
   // Disable the ability to edit the TreeNode labels.
   treeView1.LabelEdit = false;
}

Ejemplo 3

En el ejemplo siguiente se determina si el usuario ha presionado una clave no numérica y, si es así, cancela el KeyPress evento mediante la Handled propiedad .

C#
// Boolean flag used to determine when a character other than a number is entered.
private bool nonNumberEntered = false;

// Handle the KeyDown event to determine the type of character entered into the control.
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
    // Initialize the flag to false.
    nonNumberEntered = false;

    // Determine whether the keystroke is a number from the top of the keyboard.
    if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
    {
        // Determine whether the keystroke is a number from the keypad.
        if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
        {
            // Determine whether the keystroke is a backspace.
            if(e.KeyCode != Keys.Back)
            {
                // A non-numerical keystroke was pressed.
                // Set the flag to true and evaluate in KeyPress event.
                nonNumberEntered = true;
            }
        }
    }
    //If shift key was pressed, it's not a number.
    if (Control.ModifierKeys == Keys.Shift) {
        nonNumberEntered = true;
    }
}

// This event occurs after the KeyDown event and can be used to prevent
// characters from entering the control.
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
    // Check for the flag being set in the KeyDown event.
    if (nonNumberEntered)
    {
        // Stop the character from being entered into the control since it is non-numerical.
        e.Handled = true;
    }
}

Comentarios

, KeyEventArgsque especifica la tecla que el usuario presionó y si se presionaron las teclas modificadoras (CTRL, ALT y MAYÚS) al mismo tiempo, se pasa con cada KeyDown evento o KeyUp .

El KeyDown evento se produce cuando el usuario presiona cualquier tecla. El KeyUp evento se produce cuando el usuario libera la clave. Los eventos duplicados KeyDown se producen cada vez que se repite la clave, si la clave se mantiene inactiva, pero solo se genera un KeyUp evento cuando el usuario libera la clave.

El KeyPress evento también se produce cuando se presiona una tecla. KeyPressEventArgs Se pasa con cada KeyPress evento y especifica el carácter que se compuso como resultado de cada pulsación de tecla.

Para obtener información sobre el modelo de eventos, consulte Control y generación de eventos.

Constructores

KeyEventArgs(Keys)

Inicializa una nueva instancia de la clase KeyEventArgs.

Propiedades

Alt

Obtiene un valor que indica si se presionó la tecla ALT.

Control

Obtiene un valor que indica si se presionó la tecla CTRL.

Handled

Obtiene o establece un valor que indica si se controló el evento.

KeyCode

Obtiene el código de teclado para un evento KeyDown o KeyUp.

KeyData

Obtiene los datos de tecla para un evento KeyDown o KeyUp.

KeyValue

Obtiene el valor de teclado para un evento KeyDown o KeyUp.

Modifiers

Obtiene los marcadores modificadores para un evento KeyDown o KeyUp. Los marcadores indican qué combinación de CTRL, MAYÚS y teclas ALT se presionó.

Shift

Obtiene un valor que indica si se presionó la tecla MAYÚS.

SuppressKeyPress

Obtiene o establece un valor que indica si el evento de tecla se debería pasar al control subyacente.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Producto Versiones
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Consulte también