Freigeben über


Gewusst wie: Anzeigen modaler und nicht modaler Windows Forms

Aktualisiert: November 2007

Formulare und Dialogfelder sind entweder modal oder nicht modal. Ein modales Formular- oder Dialogfeld muss geschlossen oder ausgeblendet werden, bevor Sie die Arbeit mit der Anwendung fortsetzen können. Weitere Informationen über das Arbeiten mit Dialogfeldern finden Sie unter Benutzereingaben in Dialogfelder.

Dialogfelder, die wichtige Meldungen anzeigen, sollten immer modal sein. Das Dialogfeld Info in Visual Studio ist ein Beispiel für ein modales Dialogfeld. MessageBox ist ein modales Formular, das Sie verwenden können.

Mithilfe von nicht modalen Formularen können Sie von einem Formularen zu einem anderen wechseln, ohne das erste Formular zuvor schließen zu müssen. Der Benutzer kann in einer anderen Anwendung arbeiten, während das Formular weiterhin angezeigt wird.

Nicht modale Formulare sind schwerer zu programmieren, da sie vom Benutzer in nicht vorhersehbarer Reihenfolge aufgerufen werden können. Der Zustand einer Anwendung muss bei allen Aktionen des Benutzers konsistent bleiben. Toolfenster werden häufig als nicht modale Fenster angezeigt. Das Dialogfeld Suchen im Menü Bearbeiten in Visual Studio ist ein Beispiel für ein nicht modales Dialogfeld. Nicht modale Formulare werden zur Anzeige häufig verwendeter Befehle oder Informationen verwendet.

Hinweis:

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

So zeigen Sie ein Formular als modales Dialogfeld an

  • Rufen Sie die ShowDialog-Methode auf.

    Im folgenden Codebeispiel wird veranschaulicht, wie Sie ein Dialogfeld modal anzeigen.

    Dim frmAbout as New Form()
    ' Display frmAbout as a modal dialog
    frmAbout.ShowDialog()
    
    //Display frmAbout as a modal dialog
    Form frmAbout = new Form();
    frmAbout.ShowDialog();
    
    //Display frmAbout as a modal dialog
    Form frmAbout =  new Form();
    frmAbout.ShowDialog();
    
    Form ^ frmAbout = gcnew Form();
    //Display frmAbout as a modal dialog
    frmAbout->ShowDialog();
    

    Die ShowDialog-Methode verfügt über das optionale Argument owner, mit dem eine Beziehung zwischen übergeordneten und untergeordneten Daten für ein Formular angegeben werden kann. Wenn ein Dialogfeld im Hauptformular beispielsweise codegesteuert angezeigt wird, können Sie als Besitzer des Dialogfelds Me (in Visual Basic) oder this (in Visual C#) übergeben, um das Hauptformular als "Besitzer" festzulegen. Siehe dazu folgendes Codebeispiel:

    Private Sub mnuAbout_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuAbout.Click
       Dim f As New Form()
       f.ShowDialog(Me)
    End Sub
    
    private void mnuAbout_Click(object sender, System.EventArgs e)
    {
       Form f = new Form();
       f.ShowDialog(this);
    }
    
    private void mnuAbout_Click(System.Object sender, System.EventArgs e)
    {
       Form f =  new Form();
       f.ShowDialog(this);
    }
    
    private:
       void mnuAbout_Click(System::Object ^ sender,
          System::EventArgs ^ e)
       {
          Form ^ f = gcnew Form();
          f->ShowDialog(this);
       }
    

So zeigen Sie ein Formular als nicht modales Dialogfeld an

  • Rufen Sie die Show-Methode auf.

    Im folgenden Beispiel wird veranschaulicht, wie Sie ein Dialogfeld Info im nicht modalen Format anzeigen.

    Dim f As New Form()
    ' Display f as a modeless dialog.
    f.Show()
    
    //Display f as a modeless dialog
    Form f= new Form();
    f.Show();
    
    //Display f as a modeless dialog
    Form f = new Form();
    f.ShowDialog(this);
    
    Form ^ f = gcnew Form();
    //Display f as a modeless dialog
    f->Show();
    
    Hinweis:

    Wenn ein Formular als modal angezeigt wird, wird der Code, der der ShowDialog-Methode folgt, erst nach dem Schließen des Dialogfelds ausgeführt. Wird das Formular jedoch nicht modal angezeigt, wird der auf die Show-Methode folgende Code gleichzeitig mit der Anzeige des Formulars ausgeführt.

Siehe auch

Aufgaben

Gewusst wie: Selektives Abrufen von Dialogfeldinformationen mithilfe mehrerer Eigenschaften

Exemplarische Vorgehensweise: Sammelabruf von Dialogfeldinformationen mithilfe von Objekten

Referenz

Übersicht über Windows Forms

Weitere Ressourcen

Erstellen neuer Windows Forms

Dialogfelder in Windows Forms