Autor Beitrag
nav93
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41



BeitragVerfasst: Fr 09.12.16 22:33 
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 :

ausblenden 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 :

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 138
Erhaltene Danke: 21

Win 11 x64
C# (VS 2022 - Rider)
BeitragVerfasst: 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.

_________________
the quiter you become, the more you are able to hear

Für diesen Beitrag haben gedankt: nav93
nav93 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41



BeitragVerfasst: 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 :

ausblenden 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 user profile iconTh69: C#-Tags hinzugefügt