web-dev-qa-db-fra.com

Comment ouvrir le second formulaire?

J'ai Form1 et Form2 dans mon projet. Form2 est juste un formulaire avec des paramètres pour Form1. Quelle est la commande pour ouvrir le Form2 à partir de Form1 et quelle est la commande pour le fermer s'il vous plaît?

27
Nasgharet

Vous devez gérer un événement sur Form1 généré à la suite d'une interaction de l'utilisateur. Par exemple, si vous avez un bouton "Paramètres" sur lequel l'utilisateur clique pour afficher le formulaire de configuration (Form2), vous devez gérer l'événement Click pour ce bouton:

private void settingsButton_Click(Object sender, EventArgs e)
{
    // Create a new instance of the Form2 class
    Form2 settingsForm = new Form2();

    // Show the settings form
    settingsForm.Show();
}

En plus de la méthode Show , vous pouvez également choisir d'utiliser la méthode ShowDialog . La différence est que ce dernier affiche le formulaire sous la forme d'un boîte de dialogue modale , ce qui signifie que l'utilisateur ne peut pas interagir avec les autres formulaires de votre application tant qu'ils n'ont pas fermé le modal. forme. C'est la même manière qu'une boîte de message fonctionne. La méthode ShowDialog renvoie également une valeur indiquant comment le formulaire a été fermé.


Lorsque l'utilisateur ferme le formulaire de configuration (en cliquant sur le "X" dans la barre de titre, par exemple), Windows se charge automatiquement de le fermer.

Si vous souhaitez le fermer vous-même avant que l'utilisateur ne le ferme, vous pouvez appeler la méthode Close du formulaire :

this.Close();
50
Cody Gray
//To open the form

Form2 form2 = new Form2();

form2.Show();
// And to close
form2.Close();

J'espère que cela t'aides

8
cush

Si vous voulez ouvrir Form2 modalement (ce qui signifie que vous ne pouvez pas cliquer sur Form1 tant que Form2 est ouvert), vous pouvez le faire:

using (Form2 f2 = new Form2()) 
{
    f2.ShowDialog(this);
}

Si vous souhaitez ouvrir Form2 de manière non modale (vous pouvez donc toujours cliquer sur Form1 alors que Form2 est ouvert), vous pouvez créer une référence de formulaire à Form2 comme suit:

private Form2 _f2;

public void openForm2()
{
    _f2 = new Form2();
    _f2.Show(this); // the "this" is important, as this will keep Form2 open above 
                    // Form1.
}

public void closeForm2()
{
    _f2.Close();
    _f2.Dispose();
}
6
MusiGenesis

Je suppose que vous parlez de Windows Forms:

Pour afficher votre formulaire, utilisez la méthode Show ():

Form form2 = new Form();
form2.Show();

pour fermer le formulaire, utilisez Close ():

form2.Close();
4

En une seule ligne ce serait:

(new Form2()).Show();

J'espère que ça aide.

3
user4227915

Sur n'importe quel clic (ou autre):

Form2 frm2 = new Form2();
frm2.Show();
2
Aykut Çevik

Respectivement Form.Show () (ou Form.ShowDialog () si vous voulez que le second formulaire soit modal), et Form.Hide () = (ou Form.Close () , selon ce que vous entendez par close it).

2
Frédéric Hamidi

Si vous avez besoin de montrer Form2 en tant que dialogue modal , depuis Form1 faire:

var form2 = new Form2();
if (form2.ShowDialog() == DialogResult.OK) 
{
    // process results here
}

Un dialogue modal conservera le focus tant qu'il sera ouvert; il définira les fenêtres parentes (Form1) "en arrière-plan" jusqu'à sa fermeture, ce qui est une pratique assez courante pour les fenêtres de paramètres.

1
Sergi Papaseit

Commencez par ceci:

var dlg = new Form2();
dlg.ShowDialog();
0
Felice Pollano
Form1 OpenNewForm = new Form1();
OpenNewForm.Show();

"OpenNewForm" est le nom du formulaire. Dans le second cas, le formulaire s'ouvre.

Si vous souhaitez fermer le formulaire précédent:

this.Close();
0
Josue Martinez