VB.NET

Fermer un Formulaire et Ouvrir un Autre en VB.NET

Dans une application Windows Forms en VB.NET, il est courant de naviguer entre différents formulaires. Voici un guide étape par étape pour fermer un formulaire et en ouvrir un autre.


Étape 1 : Créer deux formulaires

  1. Ajoutez deux formulaires à votre projet :
  • Par défaut, vous avez Form1. Ajoutez un deuxième formulaire :
    • Cliquez droit sur votre projet dans l’Explorateur de solutions.
    • Sélectionnez Ajouter > Windows Form.
    • Nommez le formulaire Form2.
  1. Concevez vos formulaires :
  • Ajoutez des boutons sur chaque formulaire pour la navigation :
    • Sur Form1, ajoutez un bouton nommé btnOpenForm2.
    • Sur Form2, ajoutez un bouton nommé btnOpenForm1.

Étape 2 : Ouvrir un autre formulaire sans fermer l’actuel

Si vous souhaitez simplement ouvrir un autre formulaire sans fermer l’actuel, utilisez la méthode Show().

Exemple sur Form1 (ouvrir Form2) :

Private Sub btnOpenForm2_Click(sender As Object, e As EventArgs) Handles btnOpenForm2.Click
    Dim form2 As New Form2()
    form2.Show()
End Sub

Exemple sur Form2 (ouvrir Form1) :

Private Sub btnOpenForm1_Click(sender As Object, e As EventArgs) Handles btnOpenForm1.Click
    Dim form1 As New Form1()
    form1.Show()
End Sub

Étape 3 : Fermer le formulaire actuel et ouvrir un autre

Si vous souhaitez fermer le formulaire actuel après en avoir ouvert un autre, utilisez la méthode Close().

Exemple sur Form1 (ouvrir Form2 et fermer Form1) :

Private Sub btnOpenForm2_Click(sender As Object, e As EventArgs) Handles btnOpenForm2.Click
    Dim form2 As New Form2()
    form2.Show()
    Me.Close() ' Ferme Form1
End Sub

Étape 4 : Fermer un formulaire sans quitter l’application

Si vous fermez tous les formulaires principaux, l’application se terminera par défaut. Pour éviter cela (si par exemple, vous utilisez un formulaire principal ou un écran de démarrage), configurez un formulaire principal dans le fichier Application Events.

  1. Cliquez droit sur votre projet > Propriétés.
  2. Sous l’onglet Application, définissez un formulaire principal dans la liste déroulante.

Étape 5 : Navigation avec un formulaire principal

Une autre méthode consiste à utiliser un formulaire principal comme base de l’application. Ce formulaire gère l’ouverture et la fermeture des autres formulaires.

Exemple avec un formulaire principal MainForm

Dans MainForm :

Private Sub btnOpenForm1_Click(sender As Object, e As EventArgs) Handles btnOpenForm1.Click
    Dim form1 As New Form1()
    form1.Show()
    Me.Hide() ' Masque le formulaire principal sans le fermer
End Sub

Private Sub btnOpenForm2_Click(sender As Object, e As EventArgs) Handles btnOpenForm2.Click
    Dim form2 As New Form2()
    form2.Show()
    Me.Hide() ' Masque le formulaire principal sans le fermer
End Sub

Dans Form1 et Form2 :

Ajoutez un bouton pour revenir au formulaire principal :

Private Sub btnBackToMainForm_Click(sender As Object, e As EventArgs) Handles btnBackToMainForm.Click
    Dim mainForm As New MainForm()
    mainForm.Show()
    Me.Close() ' Ferme le formulaire actuel
End Sub

Étape 6 : Navigation sans recréer le formulaire

Si vous ne souhaitez pas recréer un nouveau formulaire chaque fois que vous naviguez, utilisez des instances globales.

Exemple avec des variables globales

Déclarez une instance de chaque formulaire dans un module global :

Module GlobalForms
    Public form1 As New Form1()
    Public form2 As New Form2()
End Module

Dans Form1 :

Private Sub btnOpenForm2_Click(sender As Object, e As EventArgs) Handles btnOpenForm2.Click
    form2.Show()
    Me.Hide() ' Masque Form1
End Sub

Dans Form2 :

Private Sub btnOpenForm1_Click(sender As Object, e As EventArgs) Handles btnOpenForm1.Click
    form1.Show()
    Me.Hide() ' Masque Form2
End Sub

Étape 7 : Fermer complètement l’application

Pour fermer complètement l’application lorsque vous fermez un formulaire, utilisez :

Application.Exit()

Exemple :

Dans Form2, fermer l’application depuis un bouton :

Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
    Application.Exit()
End Sub

Étape 8 : Gestion des événements de fermeture

Vous pouvez gérer les événements de fermeture pour effectuer des actions avant qu’un formulaire ne se ferme.

Exemple avec l’événement FormClosing

Dans Form1 :

Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
    Dim result As DialogResult = MessageBox.Show("Voulez-vous vraiment fermer ce formulaire ?", "Confirmer", MessageBoxButtons.YesNo)
    If result = DialogResult.No Then
        e.Cancel = True ' Annule la fermeture
    End If
End Sub

Résumé des méthodes

ActionCode
Ouvrir un formulaireform2.Show()
Fermer le formulaire actuelMe.Close()
Masquer un formulaireMe.Hide()
Revenir à un formulaire principalmainForm.Show()
Fermer l’applicationApplication.Exit()

Comment afficher une boîte de dialogue ?

En VB.NET, une boîte de dialogue peut être affichée à l’aide de différentes méthodes et types, en fonction de ce que vous souhaitez faire. Voici un guide détaillé avec des exemples courants de boîtes de dialogue :


1. Boîte de Message (MessageBox)

La méthode la plus simple et la plus courante pour afficher des informations, des avertissements ou des questions est d’utiliser un MessageBox.

Exemple : MessageBox.Show

MessageBox.Show("Ceci est un message d'information.", "Titre de la boîte", MessageBoxButtons.OK, MessageBoxIcon.Information)

Options disponibles

  • Boutons disponibles :
    • MessageBoxButtons.OK
    • MessageBoxButtons.OKCancel
    • MessageBoxButtons.YesNo
    • MessageBoxButtons.YesNoCancel
    • MessageBoxButtons.RetryCancel
  • Icônes disponibles :
    • MessageBoxIcon.Information
    • MessageBoxIcon.Warning
    • MessageBoxIcon.Error
    • MessageBoxIcon.Question

Exemple complet avec choix de l’utilisateur :

Dim result As DialogResult
result = MessageBox.Show("Voulez-vous continuer ?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

If result = DialogResult.Yes Then
    MessageBox.Show("Vous avez choisi Oui.", "Confirmation", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
    MessageBox.Show("Vous avez choisi Non.", "Confirmation", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If

2. Boîtes de Dialogue Standards

VB.NET fournit plusieurs boîtes de dialogue standard pour des tâches spécifiques, comme ouvrir des fichiers, enregistrer des fichiers ou choisir des couleurs.


2.1. Boîte de Dialogue Ouvrir un Fichier (OpenFileDialog)

Utilisée pour permettre à l’utilisateur de sélectionner un fichier.

Dim openFileDialog As New OpenFileDialog()
openFileDialog.Title = "Sélectionnez un fichier"
openFileDialog.Filter = "Fichiers texte (*.txt)|*.txt|Tous les fichiers (*.*)|*.*"

If openFileDialog.ShowDialog() = DialogResult.OK Then
    MessageBox.Show("Vous avez sélectionné : " & openFileDialog.FileName, "Fichier sélectionné", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

2.2. Boîte de Dialogue Enregistrer un Fichier (SaveFileDialog)

Utilisée pour permettre à l’utilisateur de spécifier un emplacement pour enregistrer un fichier.

Dim saveFileDialog As New SaveFileDialog()
saveFileDialog.Title = "Enregistrez votre fichier"
saveFileDialog.Filter = "Fichiers texte (*.txt)|*.txt|Tous les fichiers (*.*)|*.*"

If saveFileDialog.ShowDialog() = DialogResult.OK Then
    MessageBox.Show("Fichier enregistré sous : " & saveFileDialog.FileName, "Fichier enregistré", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

2.3. Boîte de Dialogue Sélecteur de Couleurs (ColorDialog)

Utilisée pour permettre à l’utilisateur de choisir une couleur.

Dim colorDialog As New ColorDialog()

If colorDialog.ShowDialog() = DialogResult.OK Then
    MessageBox.Show("Vous avez choisi la couleur : " & colorDialog.Color.ToString(), "Couleur sélectionnée", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

2.4. Boîte de Dialogue Sélecteur de Police (FontDialog)

Utilisée pour permettre à l’utilisateur de choisir une police.

Dim fontDialog As New FontDialog()

If fontDialog.ShowDialog() = DialogResult.OK Then
    MessageBox.Show("Vous avez choisi la police : " & fontDialog.Font.Name, "Police sélectionnée", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

2.5. Boîte de Dialogue Sélecteur de Dossier (FolderBrowserDialog)

Permet à l’utilisateur de sélectionner un dossier.

Dim folderDialog As New FolderBrowserDialog()
folderDialog.Description = "Sélectionnez un dossier"

If folderDialog.ShowDialog() = DialogResult.OK Then
    MessageBox.Show("Dossier sélectionné : " & folderDialog.SelectedPath, "Dossier", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If

3. Créer une Boîte de Dialogue Personnalisée

Si les boîtes de dialogue standards ne répondent pas à vos besoins, vous pouvez créer votre propre formulaire pour agir comme une boîte de dialogue.

Exemple : Boîte de Dialogue Personnalisée

  1. Créez un nouveau formulaire, par exemple CustomDialog.
  2. Ajoutez des contrôles comme des boutons ou des champs d’entrée.
  3. Configurez le bouton principal pour définir le résultat de la boîte de dialogue.

Code dans CustomDialog :

Public Class CustomDialog
    Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
        Me.DialogResult = DialogResult.OK
        Me.Close()
    End Sub

    Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
        Me.DialogResult = DialogResult.Cancel
        Me.Close()
    End Sub
End Class

Code pour afficher la boîte de dialogue personnalisée :

Dim dialog As New CustomDialog()
If dialog.ShowDialog() = DialogResult.OK Then
    MessageBox.Show("Vous avez cliqué sur OK.", "Confirmation", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
    MessageBox.Show("Vous avez cliqué sur Annuler.", "Annulation", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End If

Résumé des boîtes de dialogue disponibles

TypeClasseUsage
MessageBoxMessageBox.ShowAfficher un message ou poser une question.
Ouvrir un fichierOpenFileDialogSélectionner un fichier à ouvrir.
Enregistrer un fichierSaveFileDialogSpécifier un emplacement pour enregistrer un fichier.
Sélecteur de couleursColorDialogChoisir une couleur.
Sélecteur de policeFontDialogChoisir une police.
Sélecteur de dossierFolderBrowserDialogSélectionner un dossier.
Boîte personnaliséeFormulaire personnaliséCréer une boîte de dialogue sur mesure.

Autres articles

Guide : Déclaration d’un objet en VB.NET...
VB.NET (Visual Basic .NET) est un langage orienté objet qui...
Read more
Guide : Comment ouvrir une base de...
Ce guide explique étape par étape comment ouvrir une base...
Read more
Guide : Afficher une miniature d’un fichier...
En VB.NET, il n’existe pas de méthode native pour afficher...
Read more

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *