Autor Beitrag
grisu2611
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28


C/C++; C# (neu)
BeitragVerfasst: Sa 13.10.07 13:33 
Hallo,

ich mache eine Eingabe in eine TextBox und möchte diese Abfragen! Wenn die Abfrage nicht passt soll die TextBox gelöscht und die Eingabe wiederholt werden! Zusätzlich soll eine MessageBox erscheinen!

Habe diesen Code geschrieben aber irgendwie komme ich immer in eine Endlosschleife rein!

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
private void prüfungStartBtn_Click(object sender, EventArgs e)
        {
            
            // Netzgerät ansteuern
            kanal = 0;
            
                if (box12V.Checked)
                {
                    do
                    {
                        spannung = Convert.ToDouble(txtBoxPrüfSpg.Text);
                        if (spannung <= 11.0 || spannung >= 14.3)
                        {
                            MessageBox.Show("Bitte Spannungsbereich von 11,1V und 14,3V einhalten"
                                "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            txtBoxPrüfSpg.Clear();
                        }
                    } while (spannung <= 11.0 || spannung >= 14.3);

                    double spannung1 = spannung / 3.0;
                    ausgabeSpg(kanal, spannung1);
                        
                }
}


Danke für eure Hilfe im Vorraus
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 13.10.07 13:42 
Hallo!

Du hast da einen Denkfehler drin. Du gibst dem Nutzer ja gar keine Zeit, eine Eingabe zu tätigen. Du müsstest, wenn man das so machen würde, auf die Nutzereingabe warten. Aber man wartet in WinForms nicht auf Benutzereingaben, sondern man reagiert auf Ereignisse.

Daher: Wenn die Eingabe nicht stimmt, eine Meldung ausgeben, Textfeld leeren und Methode komplett abbrechen. Der Nutzer klickt den Button dann erneut, sobald er die Eingabe gemacht hat.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
grisu2611 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28


C/C++; C# (neu)
BeitragVerfasst: Sa 13.10.07 13:48 
ja danke!

habe auch gerade meinen fehler selber gefunden!

gebe einfach ein return unter dem löschen der TextBox ein und es funktioniert!

Danke!!