teclas - evento para tecla enter c#
Cómo manejar el evento de pulsación de tecla en la aplicación de la consola (3)
Desafortunadamente, la clase de la consola no tiene ningún evento definido para la entrada del usuario, sin embargo, si desea generar el carácter actual que se presionó, puede hacer lo siguiente:
static void Main(string[] args)
{
//This will loop indefinitely
while (true)
{
/*Output the character which was pressed. This will duplicate the input, such
that if you press ''a'' the output will be ''aa''. To prevent this, pass true to
the ReadKey overload*/
Console.Write(Console.ReadKey().KeyChar);
}
}
Console.ReadKey devuelve un objeto ConsoleKeyInfo , que encapsula mucha información sobre la tecla que se presionó.
Quiero crear una aplicación de consola que muestre la clave que se presiona en la pantalla de la consola, hice este código hasta el momento:
static void Main(string[] args)
{
// this is absolutely wrong, but I hope you get what I mean
PreviewKeyDownEventArgs += new PreviewKeyDownEventArgs(keylogger);
}
private void keylogger(KeyEventArgs e)
{
Console.Write(e.KeyCode);
}
Quiero saber, ¿qué debería escribir en main para poder llamar a ese evento?
Otra solución, la utilicé para mi aventura basada en texto.
ConsoleKey choice;
do
{
choice = Console.ReadKey(true).Key;
switch (choice)
{
// 1 ! key
case ConsoleKey.D1:
Console.WriteLine("1. Choice");
break;
//2 @ key
case ConsoleKey.D2:
Console.WriteLine("2. Choice");
break;
}
} while (choice != ConsoleKey.D1 && choice != ConsoleKey.D2);
Para la aplicación de la consola puede hacer esto, el ciclo do while
while se ejecuta hasta que presione x
public class Program
{
public static void Main()
{
ConsoleKeyInfo keyinfo;
do
{
keyinfo = Console.ReadKey();
Console.WriteLine(keyinfo.Key + " was pressed");
}
while (keyinfo.Key != ConsoleKey.X);
}
}
Esto solo funcionará si su aplicación de consola tiene foco . Si desea reunir eventos de pulsación de tecla en todo el sistema, puede usar ganchos de Windows