Wenn ich versuche, Steuerelemente auf einem Windows-Formular zu validieren, erkenne ich, dass die Funktion .validated() für jedes Steuerelement ausgelöst wird, wenn der Fokus verloren geht. Stattdessen möchte ich nur zu validieren, wenn die Schaltfläche unten gedrückt wird, wie würde ich dies tun?
Antworten
Zu viele Anzeigen?
Henk Holterman
Punkte
249753
Wenn Sie die Eigenschaft causesValidation auf true setzen, wird das Ereignis .Validating (und später: .Validated) ausgelöst, wenn Sie das Steuerelement verlassen. Setzen Sie es auf false oder behandeln Sie das Ereignis einfach nicht.
Um eine Validierung auf Formularebene durchzuführen, behandeln Sie das Ereignis "Schließen" (besser als "Buttonclick") und schreiben Sie dort Ihre Logik. Es macht keinen Sinn, die Validating-Event-Handler aufzurufen.
Können Sie alle Validierungsbedingungen in Button_Click
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
if (!String.IsNullOrEmpty(txtUserName.Text))
{
MessageBox.Show("Please enter user Name");
}
else if(condition)
{
}
...........
}