Comment faire pour changer de formes en C# à l'aide d'un bouton de l'événement
J'ai un code ici:
private void button1_Click(object sender, EventArgs e)
{
Application.Run(new Form3());
}
Bien que je ne pense pas que ce soit la façon dont vous êtes pour but de modifier les formes, quand je l'ai couru, il a jeté un message d'erreur indiquant:
Le démarrage d'une deuxième boucle de message sur un
seul thread n'est pas une opération valide
- Que diriez-vous simplement
(new Form3()).Show()
? - double possible de What est la meilleure méthode pour basculer entre les formes en C# ?
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas utiliser
Application.Run
- c'est pour le démarrage de windows formulaire de demande (boucle de message interne qui est partagé entre toutes les formes dans l'application), pas pour afficher un formulaire. Chaque forme aShow
etHide
méthode de sorte que vous devez simplement appeler:Mais vous ne devez pas créer un formulaire à chaque fois que vous voulez montrer. Si vous voulez avoir une seule instance de la forme, vous devez le garder en tant que global et uniquement afficher ou masquer à la demande. Sinon, vous devrez appeler
Close
au lieu deHide
pour effacer toutes les ressources de la forme en consomme.que vous pouvez faire est aussi simple que ça :
où test est votre nouveau formulaire
et puis si vous wona de passer des variables à l'autre formulaire que je viens de vous faire de la variable en tant que public, alors vous pouvez faire :
puis showdialog pour montrer votre nouveau formulaire et à proximité de l'ancien formulaire..
Votre premier formulaire et créez une deuxième forme sur la première utilisation et de se cacher de la vue. Ensuite, la deuxième forme se cacher et de montrer la première forme lorsque vous revenez. Quelque chose comme ceci...
Vous pouvez assigner à firstForm la ce valeur dans le constructeur de la première classe de la forme et parce que c'est la principale forme il sera toujours créé au démarrage de l'application. Si vous voulez économiser des ressources vous pouvez également disposer de la deuxième forme lorsque vous revenez à la première et ainsi de recréer à chaque fois que vous mettez.
Ont un oeil sur le lien suivant
Quelle est la meilleure méthode pour basculer entre les formes en C#?
Fondamentalement, vous montrer et cacher les formes.
cette.Hide();
Menu Menu = new Menu();
nom de votre formulaire.Show();
Suppose que vous avez
Form1
etForm2
Votre objectif n'est pas clair si vous voulez
Basculer entre
Form1
etForm2
et de garder à la fois de leur vivant.Ne garder que soit
Form1
ouForm2
à la fois.pour le cas 1 simple
Form1.Hide() and Form2.Show()
serait adéquat.pour le cas 2, la solution va être un peu compliqué.
ApplicationContext MyAppCxt= new ApplicationContext()
.Program.Run(Form1)
appelProgram.Run(MyAppCxt(Form1))
dans le gestionnaire de certains cas, lorsque vous en avez besoin pour passer la
Form1
etForm2
Form2 f2 = new Form2();//Create the new form
MyAppCxt.MainForm = f2;//set Form2 as MainForm in the message queue
Form2.Close()//Close Form2 and release all the resource
F2.Show();//display Form2 to the user
le même scénario se répétera lors du changement entre
Form2
etForm1