HOWTO · Csharp
Simular una pulsación de tecla en C#
En este artículo, aprenderemos una forma fácil y sencilla de simular una pulsación de tecla en C#.
Este artículo muestra un enfoque rápido y sencillo para simular una pulsación de tecla en C#.
Durante la prueba, es posible que deba transmitir una secuencia de botones presionados (una pulsación de tecla) al objeto elegido: un control o una ventana. Puede simular pulsaciones de teclas a partir de pruebas de palabras clave y secuencias de comandos mediante la transmisión de códigos de teclas al control o ventana elegidos.
Crear una aplicación de formulario en C#
En primer lugar, cree una nueva aplicación de formulario de Windows en Visual Studio.
Abra su archivo de diseño .cs y cree una etiqueta llamada numberLabel y asígnele un texto que pueda ser "Text To Be Displayed", establezca su alineación en el centro central para que se vea limpio.
Vamos a crear numPadButton y alphabetButton, y añadir el texto "Click Me" a ambos botones. Haga doble clic en su numPadButton, que lo llevará a la función numPadButton_Click.
Dentro de esta función, asigna algún texto a la numberLabel. Este texto aparecerá una vez que se presione la tecla que asignaremos.
private void numPadButton_Click(object sender, EventArgs e) {
numberLabel.Text = "Numpad Button 0 Pressed";
}
Realice los mismos pasos con el alphabetButton. Dentro de la función alphabetButton_Click, asigne a numberLabel un texto diferente, ya que este texto se mostrará en una tecla diferente presionada.
private void alphabetButton_Click(object sender, EventArgs e) {
numberLabel.Text = "Enter Pressed";
}
Producción:
Necesitamos habilitar la funcionalidad KeyPreview para nuestro formulario que determina si los eventos del teclado están registrados con el formulario o no. Por lo tanto, haga clic en todo el formulario y, desde el panel de propiedades a su derecha, establezca el valor KeyPreview en verdadero.
Luego, necesitamos un evento KeyDown que identifique y maneje el evento de pulsación de tecla, y para agregarlo, vaya al panel de propiedades y abra la pestaña de eventos con un símbolo de rayo. Desplácese hacia abajo hasta el evento KeyDown y haga doble clic en él.
Creará un método Form1_KeyDown() y lo llevará a este método. Este método toma dos argumentos, un sender de tipo object y un evento e de tipo KeyEventArgs.
private void Form1_KeyDown(object sender, KeyEventArgs e) {}
Ahora debemos usar el clic del botón para imitar la pulsación de una determinada tecla. Esta función recibirá la tecla presionada, y verificaremos si la clave recibida es NumPad0 y luego realizaremos el clic en numPadButton.
if (e.KeyCode == Keys.NumPad0) {
numPadButton.PerformClick();
}
Con el alphabetButton, tenemos que seguir el mismo proceso. Entonces, desde la pestaña de eventos, haga doble clic en el evento KeyUp, y dentro de la función Form1_KeyUp(), verifique si la clave recibida es Enter, luego haga clic en el alphabetButton.
using System;
namespace SimulateKeyPress {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void numPadButton_Click(object sender, EventArgs e) {
numberLabel.Text = "Numpad Button 0 Pressed";
}
private void alphabetButton_Click(object sender, EventArgs e) {
numberLabel.Text = "Enter Pressed";
}
private void Form1_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.NumPad0) {
numPadButton.PerformClick();
}
}
private void Form1_KeyUp(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter) {
alphabetButton.PerformClick();
}
}
private void numberLabel_Click(object sender, EventArgs e) {}
}
}
Producción:
Cuando se presiona el Numpad 0 desde el teclado.
Cuando se presiona Enter desde el teclado.