Triviale Zeichen

02/11/2010 - 17:58 von DIMIM | Report spam
Eine ganz triviale Sache in C++ oder anderen Programmiersparchen.

In der KeyUp-Methode bekomme ich ein KeyEventArgs objekt.
Wie bekomme ich daraus das auf der Tastatur eingegebene Zeichen?

Z.B. wenn ich das zeichen '#' drücke, so ist der KeyValue 191, was dem
umgekehrten Fragezeichen entspricht.
Daneben habe ich in der Char-Struktur die Methoden
isLetterOrDigit(char), isPunctuation(char), ...

Wie kann ich am einfachsten das Zeichen in der KeyUp-Methode in ein
char-Zeichen bekommen?

D.h. ich möchte so etwas:

...KeyUp(..., KeyEventArgs e)
{
if ( isControl ( (char) e.KeyValue ))
return;
if ( isLetterOrDigit ( (char) e.KeyValue) )
{
// liefert nicht das Gewünschte
MessageBox.Show( e.KeyCode.ToString() );
...
}
else
{
...
}
}

also an sich trivialer Gedanke, aber anscheinend nicht so einfach, wie
man denkt, denn e.KeyValue liefert nicht das, was ich brauche. Gibt es
irgendwelche triviale Möglichkeit für die Lösung?
 

Lesen sie die antworten

#1 Thomas Scheidegger
02/11/2010 - 18:43 | Warnen spam
?Hallo Ivan

das Zeichen in der KeyUp-Methode in ein
char-Zeichen bekommen?



der Zweck ist zwar nicht ganz klar,
aber folgender Code könnte eine Interpretation sein:

char chr = (char) e.KeyValue;
if (Char.IsControl(chr))
return;
if (Char.IsLetterOrDigit(chr) )
{
MessageBox.Show( "You hit the <" + chr + "> key!" );
// e.Handled = true;
}

Oder evtl für dich brauchbar, der KeyPress-Event und:
KeyPressEventArgs.KeyChar
http://msdn.microsoft.com/en-us/lib...ychar.aspx

PS
MS hat diese Newsgroup offiziell geschlossen
ist nur noch bei einigen Providern verfügbar,
MS Web-Forum für C# wàre
http://social.msdn.microsoft.com/Fo...alcsharpde


Thomas Scheidegger - 'NETMaster'
http://dnetmaster.net/

Ähnliche fragen