2016-04-10 23 views
0

In meinem Programm möchte ich in der Lage sein, vielleicht "E" auf meiner Tastatur einzugeben und es in der Textbox als einen anderen Buchstaben, z.B. "F".Umschlüsselung auf Anwendung

Was ist der effektivste Weg, dies ohne Konflikte beim Senden von Schlüsseln zu tun?

Ich habe versucht, mit der oben genannten Methode, aber es endet aufeinander zu stoßen und es landet stattdessen einen anderen Brief senden.

+0

Warum nicht nur 'key = 'T''? –

+0

@ MathiasR.Jessen Es funktioniert gerade so, aber gibt es eine Möglichkeit, den gesetzten Buchstaben tatsächlich auszugeben? Ich dachte, ascii würde dieses Problem lösen. Wenn ich F schreiben würde, würde es es als T aufzeichnen, aber trotzdem F ausgeben. – Jed5931

+0

* Was * gibt genau 'F' aus? Welches Ereignis behandeln Sie? Wie weisen Sie 'key' zu? Bitte stelle [ein minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) zur Verfügung –

Antwort

1

Sie sollten das Ereignis KeyPress anstelle von KeyDown/KeyUp Ereignis verwenden.

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    switch (e.KeyChar.ToString().ToUpper()) 
    { 
     case "E": 
      e.KeyChar = 'f'; 
      break; 
     case "F": 
      e.KeyChar = 'e'; 
      break; 
    } 
} 
+0

Ist es möglich mit der LowerInvariant oder Upper zu arbeiten? Auf diese Weise muss ich keine weiteren Fälle für Kleinbuchstaben erstellen – Jed5931

+0

Es sollte mit beiden funktionieren wie es ist. –