Changement de formulaire [Résolu]

Signaler
Messages postés
41
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
13 août 2012
-
Messages postés
41
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
13 août 2012
-
Bonjour,

Je souhaiterais dans une form cliquer sur un bouton et cette action doit avoir pour conséquence de chargé différents contrôles toujours dans la même form.
La méthode ShowDialog() ne me satisfait pas puisque une nouvelle form est ouverte, je veux vraiment pouvoir tout faire dans une seule form.

Merci de votre aide.

4 réponses

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
44
Théoriquement, si tu veux effacer tout ce qui se trouve dans ta form, il te suffit de faire this.Controls.Clear();
Mais le concept des Panels est beaucoup plus simple. Comme ça tu peux tout préparer en mode Design, par exemple.
Les panels, c'est simple, efficace, léger, instantané, pratique, rapide à faire et propre. Tu veux quoi de plus ?

En gros, tu crées, par exemple, un panel pnlLogin, à l'intérieur duquel tu mets une textbox pour le login, une pour le mot de passe, 3 labels ("login", "mot de passe" et un pour un message en cas d'erreur) et un bouton OK.
Dans un autre panel (pnlMain disons), tu crées ton interface comme tu la souhaites.
De plus, tu mets pnlMain.Visible à false.

Une fois que l'utilisateur a rentré un login et un mot de passe valide, il te suffit de faire
pnlLogin.Visible = false;
pnlMain.Visible = true;

Et si c'est pour une connexion, tu peux même plutôt faire pnlMain.Visible toujours à true et changer pnlMain.Enabled

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
44
Salut

Il suffit de jouer sur la propriété Visible des éléments.
Si tu souhaites en rajouter, c'est this.Controls.Add(monNouveauControle);

Je serais toi, tu créerais cette présentation dans différents panels, et j'afficherais ou non ces panels.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
Messages postés
41
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
13 août 2012

Bonjour,

Merci pour ta réponse.
Mais penses-tu que ce soit réellement la meilleure solution?
N'y a-t-il pas une propriété pour la form en cours pour "effacer" tous les contrôles qu'elle contient.
Pour te dire ça je m'appuis par exemple sur MSN. Tu as une form où tu peux te connecter et quand tu es connecté la même form est utilisée pour la gestion des contacts.
Est ce qu'il s'agit de 2 forms différentes et la première est alors supprimée (methode Close())?
Enfin connaissez-vous un lien expliquant les règles de base concernant le design et l'enchainement des form dans Visual studio.

Merci.
Messages postés
41
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
13 août 2012

Merci pour ta réponse. Disons que comme je suis assez débutant je te fais confiance. Je voulais juste être sur que la bonne méthode à suivre était celle-ci.

Merci.