Gewusst wie: Schließen von Dialogfeldern und Speichern von Benutzereingaben

Sie können die Art und Weise, wie ein Dialogfeld geschlossen wird, entweder zur Entwurfszeit oder zur Laufzeit festlegen. Zur Entwurfszeit können Sie die DialogResult-Eigenschaft für alle Button-Steuerelemente in einem Dialogfeld festlegen. Zur Laufzeit können Sie die DialogResult-Eigenschaft festlegen, damit Sie Benutzerreaktionen dynamisch behandeln können.

Hinweis

Je nach den aktiven Einstellungen oder der verwendeten Version können die angezeigten Dialogfelder und Menübefehle von den in der Hilfe beschriebenen abweichen. Klicken Sie im Menü Extras auf Einstellungen importieren und exportieren, um die Einstellungen zu ändern. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

So legen Sie die DialogResult-Eigenschaft eines Steuerelements zur Entwurfszeit fest

  1. Klicken Sie auf das Button-Steuerelement, dessen Eigenschaft festgelegt werden soll.

  2. Wählen Sie im Eigenschaftenfenster die DialogResult-Eigenschaft aus, und öffnen Sie die Liste der für die Eigenschaft verfügbaren Einstellungen.

  3. Legen Sie fest, welches Ergebnis das Dialogfeld haben soll.

    Sie können das Ergebnis des Dialogfelds auch für eine andere Benutzeraktion konfigurieren als für das Klicken auf ein Button-Steuerelement. Falls das Dialogfeld keine Schaltflächen zum Schließen des Dialogfelds enthält, können Sie festlegen, dass sein Ergebnis zur Laufzeit ermittelt wird.

So legen Sie die DialogResult-Eigenschaft eines Steuerelements oder Formulars programmgesteuert fest

  1. Navigieren Sie zu dem Ereignishandler bzw. zu der Methode, dessen oder deren DialogResult-Eigenschaft festgelegt werden soll.

  2. Erstellen Sie ähnlichen Code wie im folgenden Codebeispiel.

    Public Sub InformationProcessed()
       ' This code will set the DialogResult for a form.
       Me.DialogResult = DialogResult.Yes
       ' OR
       ' This code will set the DialogResult for a button.
       Button1.DialogResult = DialogResult.No
    End Sub
    
    private void InformationProcessed() 
    {
       // This code will set the DialogResult for a form.
       DialogResult = DialogResult.Yes;
       // OR
       // This code will set the DialogResult for a button.
       button1.DialogResult = DialogResult.No;
    }
    
    private:
       void InformationProcessed()
       {
          // This code will set the DialogResult for a form.
          this->DialogResult = DialogResult::Yes;
          // OR
          // This code will set the DialogResult for a button.
          button1->DialogResult = DialogResult::No;
       }
    

    Obwohl das Dialogfeld durch das Festlegen der DialogResult-Eigenschaft automatisch geschlossen wird, kann das Click-Ereignis des Steuerelements weiterhin behandelt werden, sodass das Dialogfeld erst geschlossen wird, nachdem der Code des Ereignishandlers verarbeitet wurde. Sie haben die Möglichkeit, das Schließen des Dialogfelds während der Behandlung des Click-Ereignisses zu verhindern.

So verhindern Sie, dass das Dialogfeld durch die DialogResult-Eigenschaft geschlossen wird

  • Erstellen Sie im Ereignishandler ähnlichen Code wie im folgenden Codebeispiel.

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
       Me.DialogResult = DialogResult.None
    End Sub
    
    private void button1_Click(object sender, System.EventArgs e) 
    {
       DialogResult = DialogResult.None;
    }
    
    private:
       void button1_Click(System::Object ^ sender,
          System::EventArgs ^ e) 
       {
          this->DialogResult = DialogResult::None;
       }
    

    Hinweis

    Mithilfe des Closing-Ereignisses des Formulars können Sie auch das Schließen des Dialogfelds beenden.

Siehe auch

Aufgaben

Gewusst wie: Erstellen von Dialogfeldern zur Entwurfszeit
Gewusst wie: Abrufen des Ergebnisses für Dialogfelder

Konzepte

Benutzereingaben in Dialogfelder

Weitere Ressourcen

Dialogfelder in Windows Forms