Partager via


Comment : afficher des Windows Forms modaux et non modaux

Mise à jour : novembre 2007

Les formulaires et les boîtes de dialogue sont soit modaux soit non modaux. Une boîte de dialogue ou un formulaire modal doit être fermé ou masqué avant que vous puissiez continuer à travailler dans le reste de l'application. Pour plus d'informations sur l'utilisation de boîtes de dialogue, consultez Données entrées par l'utilisateur dans les boîtes de dialogue.

Les boîtes de dialogue affichant des messages importants doivent toujours être modales. La boîte de dialogue À propos de présente dans Visual Studio est un exemple de boîte de dialogue modale. MessageBox est un formulaire modal que vous pouvez utiliser.

Un formulaire non modal vous permet de lui ôter le focus pour le donner à un autre formulaire et ce, sans le fermer. L'utilisateur peut continuer à travailler ailleurs dans une autre application pendant que ce formulaire reste affiché.

Les formulaires non modaux sont plus difficiles à programmer, parce que les utilisateurs peuvent y accéder dans un ordre imprévu. Vous devez maintenir la cohérence de l'application quoi que fasse l'utilisateur. Les fenêtres d'outil sont généralement non modales. La boîte de dialogue Rechercher, accessible à partir du menu Edition de Visual Studio, constitue un exemple de boîte de dialogue non modale. Utilisez des formulaires non modaux pour afficher des informations ou des commandes fréquemment utilisées.

Remarque :

Les boîtes de dialogue et les commandes de menu que vous voyez peuvent différer de celles qui sont décrites dans l'aide selon vos paramètres actifs ou votre édition. Pour modifier vos paramètres, choisissez Importation et exportation de paramètres dans le menu Outils. Pour plus d'informations, consultez Paramètres Visual Studio.

Pour afficher un formulaire en tant que boîte de dialogue modale

  • Appelez la méthode ShowDialog.

    L'exemple de code suivant indique comment afficher une boîte de dialogue sous forme modale.

    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();
    

    La méthode ShowDialog possède un argument facultatif, owner, que vous pouvez utiliser afin de spécifier une relation parent-enfant pour un formulaire. Par exemple, lorsque le code de votre formulaire principal affiche une boîte de dialogue, vous pouvez passer Me (en Visual Basic) ou this (en Visual C#) comme propriétaire de la boîte de dialogue, afin de désigner votre formulaire principal comme propriétaire, comme le montre le code suivant.

    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);
       }
    

Pour afficher un formulaire en tant que boîte de dialogue non modale

  • Appelez la méthode Show.

    L'exemple suivant montre comment afficher une boîte de dialogue À propos de non modale.

    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();
    
    Remarque :

    Si un formulaire modal est affiché, le code suivant la méthode ShowDialog ne s'exécute pas tant que la boîte de dialogue n'est pas fermée. À l'inverse, si le formulaire est non modal, le code suivant la méthode Show est exécuté immédiatement après son affichage.

Voir aussi

Tâches

Comment : récupérer de manière sélective des informations des boîtes de dialogue à l'aide de plusieurs propriétés

Procédure pas à pas : récupération collective des informations des boîtes de dialogue à l'aide d'objets

Référence

Vue d'ensemble des Windows Forms

Autres ressources

Création d'un nouveau Windows Form

Boîtes de dialogue dans les Windows Forms