Hören Sie auf ESC beim Lesen der Kommandozeile
Ich Lesen möchte einem Benutzer die Eingabe in einen string, während immer noch reagieren auf ESC drücken jederzeit, aber ohne die Festlegung eines system-wide Hotkeys.
So, wenn der Benutzer Arten e. g. "Test-Name", sondern bestätigen Sie mit der EINGABETASTE ESC drückt er geführt wird, zurück ins Hauptmenü.
Console.Write("Enter name: ")
if (Console.ReadLine().Contains(ConsoleKey.Escape.ToString()))
{
goto MainMenu;
}
return Console.ReadLine();
Das ist der einfachste Weg, woran ich denken konnte, aber da ESC nicht gesehen Console.ReadLine()
es nicht funktioniert.
Fand eine ziemlich komplizierte Art zu reagieren auf ESC gedrückt, wenn vor starten, um text einzugeben hier, aber ich will es jeder Zeit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden Sie wahrscheinlich haben, so verzichten Sie auf die Verwendung von
ReadLine
und Rollen Sie Ihre eigenen mitReadKey
:Dieser code ist nicht vollständig und kann Arbeit erfordern, um ihn stabil zu machen, aber es sollte Ihnen einige Ideen.
Etwas verbesserte version von Chris Dunaway ist ein :
Habe ich nicht getestet es viel, aber zumindest für mich funktioniert.
Den Fall, dass jemand das gleiche problem. Fand eine Lösung durch meine eigenen. Könnte etwas kürzer sein, aber zumindest es funktioniert:
Dies ist der einfachste Weg:
Console.ReadLine()
ist Stoppt den thread, bis die EINGABETASTE gedrückt wird.