C# text-changed Zeichen einzeln behandeln
Guten Tag,
ich bin gerade in MS Visual Studio 2010 (C#) unterwegs und habe eine Textbox, in der im Textchanged Event unterschieden werden zwischen Buchstaben, Zahlen und einigen Sonderzeichen.
Wie kann man die Zeichen einzeln Abfangen?
Die Struktur für den Abgleich ist kein Problem.
MFG Simon
ich bin gerade in MS Visual Studio 2010 (C#) unterwegs und habe eine Textbox, in der im Textchanged Event unterschieden werden zwischen Buchstaben, Zahlen und einigen Sonderzeichen.
Wie kann man die Zeichen einzeln Abfangen?
Die Struktur für den Abgleich ist kein Problem.
MFG Simon
Es gibt auch ein Event Key-Down, da kannst du die gedrückte Taste (und so auf das Zeichen schließen) ermitteln. Dort könntest du eventuell sogar das Zeichen austauschen (also Hooken und was anderes senden als gedrückt wurde) dort kannst du auch ermitteln ob es ein Buchstabe eine Ziffer oder sonstwas was. Ich glaub vKeyCode oder sowas (grad kein c# bei der hand :-) )
lg wischi
lg wischi
wischipedia - http://wischenbart.org/wwa (einfach mal vorbeischaun)
prima das ist ja noch besser.
Danke für den Hinweis, da werd ich mich mal erkundigen.
Ich habe es mit dem KeyDown Event gemacht.
Hat jemand nen Tipp wie ich die Eingabe im Textfeld verberge? Dass die nicht angezeigt wird?
MFG Simon
Danke für den Hinweis, da werd ich mich mal erkundigen.
Ich habe es mit dem KeyDown Event gemacht.
Hat jemand nen Tipp wie ich die Eingabe im Textfeld verberge? Dass die nicht angezeigt wird?
MFG Simon
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Deffcon« (24. November 2011, 22:46)
Ich glaub er möchte nur die einzeln getippten Zeichen zusätzlich auswerten, aber trotzdem schreiben, wenn ich das richtig verstanden habe.
Ich teste mal kurz was..
=== so hab gestestet :-)
Also hab mich mal 5min hingesetzt :-)
Also KeyDown war ein Blödsinn von mir :-) da kannst nur die Taste selbst ermitteln, aber nicht das entstandene Zeichen.
Bei KeyPress hast ein Argument "KeyPressEventArgs e" in e.KeyChar findest das Zeichen welches entstanden ist.
z.B.
if(e.KeyChar == 'q')Application.Exit();
solltest du das Zeichen dann nicht setzen wollen, dann kannst mit
e.Handled = true;
verhindern, dass das Zeichen an die Textbox übertragen wird.
Ich teste mal kurz was..
=== so hab gestestet :-)
Also hab mich mal 5min hingesetzt :-)
Also KeyDown war ein Blödsinn von mir :-) da kannst nur die Taste selbst ermitteln, aber nicht das entstandene Zeichen.
Bei KeyPress hast ein Argument "KeyPressEventArgs e" in e.KeyChar findest das Zeichen welches entstanden ist.
z.B.
if(e.KeyChar == 'q')Application.Exit();
solltest du das Zeichen dann nicht setzen wollen, dann kannst mit
e.Handled = true;
verhindern, dass das Zeichen an die Textbox übertragen wird.
wischipedia - http://wischenbart.org/wwa (einfach mal vorbeischaun)
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »wischi« (25. November 2011, 11:21)
Danke für deine Bemühung wischi.
Ich programmiere einen Taschenrechner und nach den ganzen Buttons bin ich gerade dabei es auch mit den Tastatureingaben zum rechnen zu bringen.
Mit dem KeyDown geht das schon.
Habe da ja auch die e.keys.
Habe jetzt die oemrechenzeichen und Zahlentasten + Numbpad Zahlen eingefügt und auf allen anderen Tasten passiert nichts.
Das Problem war jetzt dass ich in der Textbox die Zahl als string bilde und dort anzeige. Die Zahl hat es auch richtig eingefügt, aber davor zeigte es immer noch die eben getippte Zahl an. Das ist verwirrend
ich muss das von jperl noch probieren. Denn wenn man jetzt 314 schreibt dann steht 4314 in der Textbox.
Aber mit der Funktion von jperl müsste es funktionieren.
Habe gerade nur wenig Zeit.
(Ja, jetzt kommt sicher die Frage warum ich einen Taschenrechner programmiere, es gibt ja nicht schon millionen davon
aber im normalen windoof rechner hat es mich immer gestört dass ich die Zwischenergebnisse nicht speichern konnte. Deshalb habe ich in meinem Rechner ne Speicherfunktion eingebaut und bringe den jetzt, um meine Programmiererfahrungen zu erweitern, in eine besser laufende Version um. Danach will ich auch noch einen Währungsrechner mit einbauen an den die Ergebnisse übergeben werden können. btw.: kennt jemand ne Möglichkeit eine Funktion einzubauen die die aktuellen Währungskurse aus dem Netz holt?)
MFG Simon
Ich programmiere einen Taschenrechner und nach den ganzen Buttons bin ich gerade dabei es auch mit den Tastatureingaben zum rechnen zu bringen.
Mit dem KeyDown geht das schon.
Habe da ja auch die e.keys.
Habe jetzt die oemrechenzeichen und Zahlentasten + Numbpad Zahlen eingefügt und auf allen anderen Tasten passiert nichts.
Das Problem war jetzt dass ich in der Textbox die Zahl als string bilde und dort anzeige. Die Zahl hat es auch richtig eingefügt, aber davor zeigte es immer noch die eben getippte Zahl an. Das ist verwirrend
ich muss das von jperl noch probieren. Denn wenn man jetzt 314 schreibt dann steht 4314 in der Textbox.Aber mit der Funktion von jperl müsste es funktionieren.
Habe gerade nur wenig Zeit.
(Ja, jetzt kommt sicher die Frage warum ich einen Taschenrechner programmiere, es gibt ja nicht schon millionen davon
aber im normalen windoof rechner hat es mich immer gestört dass ich die Zwischenergebnisse nicht speichern konnte. Deshalb habe ich in meinem Rechner ne Speicherfunktion eingebaut und bringe den jetzt, um meine Programmiererfahrungen zu erweitern, in eine besser laufende Version um. Danach will ich auch noch einen Währungsrechner mit einbauen an den die Ergebnisse übergeben werden können. btw.: kennt jemand ne Möglichkeit eine Funktion einzubauen die die aktuellen Währungskurse aus dem Netz holt?)MFG Simon
Ich habe jetzt die Tastatureingabe über e.SuppressKeyPress = true; gesperrt.
Aber ich hab auch gleich ne weitere Frage:
Wie mache ich es, dass beim fokussieren der Inhalt der Textbox nicht markiert wird?
MFG Simon
//EDIT:
Okay, ich habe es jetzt so gemacht dass ich nach dem
textbox1.focus();
einfach noch
textbox1.Select(0, 0);
gemacht habe.
Da mein Thread hier ja eher ein einsamer Monolog ist wollte ich mal fragen ob jemand ein Forum für C# Anfänger kennt?
Ich versuche immer alles über msdn rauszukriegen aber wenn man eine Methode nicht kennt kann man schlecht danach suchen.
Ich bin im mycsharp Forum angemeldet aber dort kriegt man keine Anfängerhilfe. Die verstehen sich nur als Fortgelaufenen- und Expertenforum.
MFG Simon
Aber ich hab auch gleich ne weitere Frage:
Wie mache ich es, dass beim fokussieren der Inhalt der Textbox nicht markiert wird?
MFG Simon
//EDIT:
Okay, ich habe es jetzt so gemacht dass ich nach dem
textbox1.focus();
einfach noch
textbox1.Select(0, 0);
gemacht habe.
Da mein Thread hier ja eher ein einsamer Monolog ist wollte ich mal fragen ob jemand ein Forum für C# Anfänger kennt?
Ich versuche immer alles über msdn rauszukriegen aber wenn man eine Methode nicht kennt kann man schlecht danach suchen.
Ich bin im mycsharp Forum angemeldet aber dort kriegt man keine Anfängerhilfe. Die verstehen sich nur als Fortgelaufenen- und Expertenforum.
MFG Simon
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Deffcon« (28. November 2011, 10:05)
Ähnliche Themen
-
Newbies »-
Newbie möchte die Umlaute (ä, ö, ü) richtig angezeigt haben!
(18. August 2010, 15:51)
-
PHP »-
Hilfe mit RegEx
(15. April 2009, 09:30)
-
(X)HTML & CSS & DHTML & Javascript »-
CSS: Float - links unten ?
(24. Februar 2005, 16:09)
-
PHP »-
Wie formatiere ich Texte?
(30. Dezember 2002, 20:12)


