2 Stimmen

Alle Validierungen auf einmal durchführen

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?

1voto

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.

1voto

0x49D1 Punkte 8231

Setzen Sie AutoValidate auf AutoValidate.Disable und rufen Sie im Schaltflächenklick-Ereignis die Methode ValidateChildren() auf (dadurch werden alle "validierenden/validierten" Ereignisse ausgelöst). MSDN

0voto

anishMarokey Punkte 11011

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)
        {
         }
         ...........
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X