ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
4137
4137
EMPFEHLEN
-
Hallo zusammen,
ich will, dass man in eine Combobox nur Zahlen eingeben kann.
Mit den beiden folgenden Methoden funktioniert es nicht.
Methode 1: (static nur weil es aus einer helper klasse ohne instanz kommt)
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
// ob ein nicht numerisches Zeichen eingegeben wurde static bool nonNumberEntered = false; // Keydown_event um rauszufinden, welche Taste gedrückt wurde public static void numbersOnlyCB_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { nonNumberEntered = false; //Zahl (oberer Teil des Keyboards) if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9) { //Zahl aus "Num" Bereich if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9) { if(e.KeyCode != Keys.Back) { if(e.KeyCode !=Keys.Delete) { //eine nicht erlaubte Taste wurde gedrückt nonNumberEntered = true; } } } } else if(e.Shift) { nonNumberEntered = true; } } //Event nach KeyDown Event, verwendet zum blocken der Eingabe eines unerlaubten Zeichens public static void numbersOnlyCB_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { if (nonNumberEntered == true) { //das Zeichen kann nicht eingegeben werden e.Handled = true; } }
Methode 2:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
// KeyPress Event der Textbox public static void numbersOnly_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { if(!IsValidNumber(e.KeyChar.ToString())) e.Handled = true; } private static bool IsValidNumber(string s) { string[] arr = new string[]{"1","2","3","4","5","6","7","8","9"}; for(int i = 0; i < arr.Length; i++) { if(arr[i] == s.ToLower()) { return true; } } return false; }
Beides funktioniert bei Textboxes einwandfrei,
danke für eure Hilfe!
-
Oh mein Gott!
Alle was Du brauchst ist
undCode :1
ComboBox.Validating
Code :1 2 3 4 5 6 7 8 9 10 11 12
regex = new System.Text.RegularExpressions.Regex( "([0-9])" ); match = regex.Match( ComboBox.Text.Substring(ComboBox.Text.Length -1, 1 )); if ( !match.Success ){ MessageBox.Show( "Es dürfen keine Zahlen eigegeben werden!", "Ungültiges Zeichen!", MessageBoxButtons.OK, MessageBoxIcon.Information); ComboBox.Text = ComboBox.Text.Substring(0,ComboBox.Text.Length -1); ComboBox.SelectionStart = ComboBox.Text.Length; ComboBox.Focus();
MFG cosmoMfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
Vielen Dank erstmal

Muss ich dann an die ComboBox einen CancelEventHandler anhängen? Oder was meinst du mit ComboBox.Validating?
-
Validating ist ein Event welches ausgelöst wird wenn sich der Text in deiner ComboBox verändert hat.
Code :1
ComboBox.Validating += new CancelEventHandler(ComboBox_Validating);
Das steht übrigens alles in der MSDN.
MFG cosmoMfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
Danke! Habs auch schon gefunden
-
21.08.09 14:30 #6Fox33299729 Tutorials.de Gastzugang
Hmm der Code ist doch etwas buggy...
klick mal rein in das Feld und danach wieder raus, ohne etwas einzugeben... rums...
Was ich bei dieser Lösung auch nicht optimal finde ist, dass nicht direkt nach der Eingabe geprüft wird
-
Schau dir diesen Thread an:
http://www.tutorials.de/forum/net-ar...-zulassen.htmlhihi = -h²
Ähnliche Themen
-
Zahlen einlesen - überwiegen positive oder negative Zahlen?
Von jenny1106 im Forum C/C++Antworten: 10Letzter Beitrag: 06.03.10, 20:51 -
Nur Zahlen in Combobox schreiben
Von GangXtaBoii im Forum C/C++Antworten: 1Letzter Beitrag: 01.12.08, 06:39 -
Access, ComboBox gemäß ComboBox füllen?
Von pglw im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 17.09.06, 22:08 -
Nur Zahlen eingeben dürfen...
Von Mailyn im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 18.06.06, 18:35 -
mehr als 2 zahlen in ein Rechenprogramm eingeben. Wie geht das?
Von daniel_hh im Forum C/C++Antworten: 6Letzter Beitrag: 16.10.04, 22:06





Zitieren
Login





