2016-07-21 6 views
1

Ich mache eine C# Windows Form, um alle Einträge zu überprüfen, wenn alle Einträge gültig sind, wird ein Meldungsfeld angezeigt, aber ich brauche Hilfe, um sicherzustellen, dass alle Einträge gültig sind und ein Meldungsfeld anzeigen . es ist wahrscheinlich einfacher, all dies zu tun, aber könnte auch lernen, wie das alles zu tun ist. Hier ist, was ich bisher habe.C# -Fenster Formular Überprüfung aller Einträge dann Meldungsfeld

+0

Die Antworten gegeben sind, was ich tun, außer ich eine Validierungsmethode vom Typ Bool machen und meinen Code setzen dort. – Missy

Antwort

1

Sie könnten einen booleschen Wert hinzufügen und ihn auf false setzen, wenn eine Validierung fehlschlägt.

private void btn_submit_Click(object sender, EventArgs e) 
{ 
    string name = txt_name.Text; 
    string email = txt_email.Text; 
    string address = txt_address.Text; 
    string course = txt_course.Text; 
    string phone = txt_phone.Text; 
    bool formIsValid = true; 


    if (name.Length < 8) 
    { 
     txt_name.Text = "Invalid Name"; 
     txt_name.ForeColor = Color.Red; 
     formIsValid = false; 
    } 
    else 
    { 
     txt_name.ForeColor = Color.Green; 

    } 

    if (email.Contains('@')) 
    { 
     if (email.Contains(".com") || email.Contains(".COM")) 
     { 

      txt_email.ForeColor = Color.Green; 
     } 
     else 
     { 
      txt_email.Text = "invalid Email"; 
      txt_email.ForeColor = Color.Red; 
      formIsValid = false; 
     } 
    } 
    else 
    { 
     txt_email.Text = "invalid Email"; 
     txt_email.ForeColor = Color.Red; 
     formIsValid = false; 
    } 

    if (address.Length < 12) 
    { 
     txt_address.Text = "invalid Address"; 
     txt_address.ForeColor = Color.Red; 
     formIsValid = false; 
    } 
    else 
    { 
     txt_address.ForeColor = Color.Green; 
    } 
    if (course.Contains("Games Design") || course.Contains("Electronics") || course.Contains("Mobile Communications") || course.Contains("GAMES DESIGN") || course.Contains("ELECTRONICS") || course.Contains("MOBILE COMMUNICATIONS")) 
    { 
     txt_course.ForeColor = Color.Green; 
    } 
    else 
    { 
     txt_course.Text = "invalid Course"; 
     txt_course.ForeColor = Color.Red; 
     formIsValid = false; 
    } 

    if (phone.Length < 8) 
    { 
     txt_phone.Text = "invalid Phone Number"; 
     txt_phone.ForeColor = Color.Red; 
     formIsValid = false; 
    } 
    else 
    { 
     txt_phone.ForeColor = Color.Green; 
    } 

    if (formIsValid) 
    { 
     //submit the form 
    } 
    else 
    { 
     MessageBox.Show("Your error message here"); 
    } 

} 
1

Es ist eine einfache Sache, können Sie eine Boolesche Variable einführen, den Status zu bezeichnen, anfänglich auf true (sagen wir IsAllValidEntries), bei ungültigen Eintrag es falsch machen. Und überprüfen Sie die Variable am Ende, wenn eine der Bedingungen falsch ist, wird der Wert der booleschen Variablen ebenfalls falsch sein; folgender Code werden Ihnen helfen:

private void btn_submit_Click(object sender, EventArgs e) 
{ 
    // definitions 

    bool IsAllValidEntries = true; 

    if (name.Length < 8) 
    { 
     //code here 
     IsAllValidEntries = false; 
    } 
    else{ } 

    if (email.Contains('@')) 
    { 
     if (email.Contains(".com") || email.Contains(".COM")) 
     { 
      // your code here 
     } 
     else 
     { 
      //code here 
      IsAllValidEntries = false; 
     } 
    } 
    else 
    { 
     //code here 
     IsAllValidEntries = false; 
    } 

    if (address.Length < 12) 
    { 
     //code here 
     IsAllValidEntries = false; 
    } 
    else 
    { 
     txt_address.ForeColor = Color.Green; 
    } 
    if (course.Contains("Games Design") || course.Contains("Electronics") || 
    { 
     txt_course.ForeColor = Color.Green; 
    } 
    else 
    { 
     //code here 
     IsAllValidEntries = false; 
    } 

    if (phone.Length < 8) 
    { 
     //code here 
     IsAllValidEntries = false; 
    } 
    else 
    { 
     txt_phone.ForeColor = Color.Green; 
    } 

    if (IsAllValidEntries) 
     MessageBox.Show("Well done"); 
    else 
     MessageBox.Show("oooops!");  
} 
1

Die anderen Antworten gut funktionieren werden, aber es wäre in seinem eigenen Verfahren schöner sein, sagen AllEntriesValid, die einen Booleschen Wert zurück, und wenn alle Einträge gültig sein muss, kann Kurzschluss, wenn ein ungültiger Eintrag getroffen wird, als solche:

private bool AllEntriesValid() 
{ 
    if (name.Length < 8) 
    { 
     txt_name.Forecolor = Color.Red; 
     return false; 
    } 
    if (email.Contains('@')) 
    { 
     return false; 
    } 

    //if we get this far, no invalid entries were found, return true 
    return true; 
} 

Dies kann dann von mehreren Mausklicks aufgerufen werden, nicht nur die, die Sie haben zur Zeit bekam - und es ist viel besser lesbar und hält Ihren Code kondensiert!

Dann in Ihrem Button-Code, würden Sie rufen Sie einfach an:

private void btn_submit_Click(object sender, EventArgs e) 
{ 
    if (AllEntriesValid()) 
    { 
     //do something now that everything is valid 
    } 
} 

// EDIT: Gepresste einreichen bald auch.

Dan

Verwandte Themen