Entwickler-Ecke
WinForms - Error Provider Frage
nav93 - Fr 09.12.16 22:33
Titel: Error Provider Frage
Hallo,
ich habe eine Frage. Ich nutze den Error provider um darauf aufmerksam zu machen, dass eine textbox zb leer ist. wenn ich zb 3 textboxen benutze und in der einen drin bin und versuche da wieder rauszkommen , dann geht das nicht. da steht direkt bitte füllen. sollte man die Validating codes eher in den button speichern kopieren, damit die meldung nur kommt wenn man speichern drückt?
den code für eine textbox wäre zb :
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| private void textBox5_Validating(object sender, CancelEventArgs e) { if (string.IsNullOrEmpty(textBox5.Text)) { e.Cancel = true; textBox5.Focus(); errorProvider1.SetError(textBox5, "Bitte füllen !"); } else { e.Cancel = false; errorProvider1.SetError(textBox5, ""); } } |
bei meinem button speichern habe ich das jetzt so gemacht :
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| private void button1_Click(object sender, EventArgs e) {
if (ValidateChildren(ValidationConstraints.Enabled)) { errorProvider1.Clear(); CON.Open(); SqlDataAdapter SDA = new SqlDataAdapter("INSERT INTO Verpfänder (Name,Straße,Plz,Ort,Datum)VALUES('" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + dateTimePicker2.Text + "')", CON); SDA.SelectCommand.ExecuteNonQuery(); CON.Close(); MessageBox.Show("Speichern erfolgreich !");
anzeigen(); clear(); dataGridView1.ClearSelection(); } } |
danke & schönes wochendene schon mal ! :)
Yankyy02 - Fr 09.12.16 23:02
Hallo nav93,
das Problem ist das du bei einem "Error" immer den Focus auf die entsprechende TextBox setzt.
Wenn du textBox5.Focus(); weg lässt solltest du die TextBox auch bei einem Fehler verlassen können.
nav93 - Fr 09.12.16 23:21
Vielen dank ! habe es jetzt geändert, jedoch ist das problem das selbe. sobald ich in eine textbox hinein klicke wird mir das error symbol angezeigt, dass ich was eingeben soll bzw muss, da ich sonst nicht aus der box komme :/
hab es so jetzt :
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| private void textBox4_Validating(object sender, CancelEventArgs e) { if (string.IsNullOrEmpty(textBox4.Text)) { e.Cancel = true; errorProvider1.SetError(textBox4, "Bitte füllen !"); } else { e.Cancel = false; errorProvider1.SetError(textBox4, ""); } } |
in den einstellung zum provider hab ich jetzt auch nix gefunden .
MfG
PS : LÖSUNG GEFUNDEN ;D
man kann in den einstellung der form den modus ändern von
EnableAllowFocusChange! dann klappt das :) in kombination mit dem focus weg lassen
Moderiert von
Th69: C#-Tags hinzugefügt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!