IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

basculer entre deux form?


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 33
    Points
    33
    Par défaut basculer entre deux form?
    Bonjour a tous.

    Voila je travaille en winForm sous VS2005 et j'ai un projet avec deux form.
    Chacune on un bouton qui permettent normalement d'acceder à l'autre form..

    Je n'arrive pas à faire cela, comment dois je m'y prendre?

    Merci

  2. #2
    Membre actif Avatar de Luffy49
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 399
    Points : 247
    Points
    247
    Par défaut
    J'ai pas très bien compris j'ai deux interprétations :

    1) Les forms sont déjà toutes les deux affichées et tu veus basculer l'affichage des forms

    2) Il n'y a qu'une seul form d'afficher et tu veus afficher la deuxième
    La connaissance n'est rien si elle n'est pas partagé

    Citation de Confucius :
    Ceux dont la connaissance est innée sont des hommes tout à fait supérieurs. Puis viennent ceux qui acquièrent cette connaissance par l'étude. Enfin, ceux qui, même dans la détresse, n'étudient pas : c'est le peuple.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 33
    Points
    33
    Par défaut
    C'est plutot la deuxieme solution...
    J'ai un menu quand je clique sur un bouton du menu (form1) je veux afficher la form2 (la form1 ne doit plus etre visible)...sur la form2 j'ai un bouton de retour au menu (form1)...quand je clique dessus je ne veux plus voir la form2 mais seulement la form1...

    Voila

  4. #4
    Membre actif Avatar de Luffy49
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 399
    Points : 247
    Points
    247
    Par défaut
    ok donc dans l'evenement de ton bouton de ta form1 tu fait :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Form2 frm = new form2();
    frm.Show();
    this.Close();
    et sur ton bouton de ta form2 tu fait :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Form1 frm1 = new form1();
    frm1.Show();
    this.Close();
    La connaissance n'est rien si elle n'est pas partagé

    Citation de Confucius :
    Ceux dont la connaissance est innée sont des hommes tout à fait supérieurs. Puis viennent ceux qui acquièrent cette connaissance par l'étude. Enfin, ceux qui, même dans la détresse, n'étudient pas : c'est le peuple.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 33
    Points
    33
    Par défaut
    ben non ca marche pas....ca ferme mon appli quand je suis sur form2 et que je veux revenir sur form1

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 33
    Points
    33
    Par défaut
    mais cela ne m'étonne pas puisque j'ai ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                Application.Run(new Form1());
                Application.Run(new Form2());

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Joue plutôt sur Show() et Hide().
    Ainsi : les deux formulaires "existent" toujours, mais sont montrés ou non.


    Je ne connais pas ton programme, et je ne sais pas quelles données tu mets dans tes formulaires, mais :
    si le formulaire 2 est un "dérivé" du formulaire 1 (choix d'une option avant de revenir au menu...), et que le formulaire 1 est le formulaire principal, il me semblerait plus logique de ne mentionner que le formulaire 1 dans la fonction Main() et de créer un nouveau formulaire 2 au moment adéquat.

  8. #8
    Membre habitué Avatar de NeraOne
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 218
    Points : 128
    Points
    128
    Par défaut
    Je pense que tu dois pouvoir ouvrir tes deux forms au démarrage et ensuite jouer avec les méthode Hide() (de chaque Form) et/ou l'attribut Visible (de chaque form).
    Tu te fera moins chier...
    Au pire, tu la joues royal avec des événements, moi j'opte encore pour dire que c'est le plus propre mais bon c'est au choix...
    Bon courage et @+
    Antoine

    __EDIT
    Ptin j'ai mis 4 minutes à écrire mon message... lol, j'avais pas vu celui de Astartee
    "Je ne suis pas d'accord avec ce que vous dites, mais je me battrai jusqu'à la mort pour que vous ayez le droit de le dire." Voltaire

  9. #9
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par UnSofteuxAmateur
    ben non ca marche pas....ca ferme mon appli quand je suis sur form2 et que je veux revenir sur form1
    Normal c'est pas un close qu'il faut faire mais un Hide comme ca ta form est cachée mais existe toujours. SI tu la ferme et que c'est ta form principale alors l'application s'arrete.
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Je viens de réussir à mettre des mots sur ce qui me perturbe dans ta fonction Main() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Application.Run(new Form1());
    Application.Run(new Form2());
    Dans ce code :
    Tu crées une instance de Form1, et tu l'affiches.
    Puis, quand tu as fermé la Form1, tu crées une instance de Form2 et tu l'affiches.
    Puis, quand tu as fermé cette Form2, le programme est terminé.
    Donc : les deux forms n'existent jamais en même temps, ce qui est pourtant ce que tu veux faire (afficher une Form2 puis revenir à la Form1 = ne pas fermer la Form1...)


    Proposition:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    static class Program
    {
    	static void Main()
    	{
    		Application.Run(new Form1());
    	}
    }
     
    class Form1
    {
    	private void button_Click(object sender, EventArgs e)
    	{
    		Form2 form2 = new Form2();
    		this.Hide();
    		form2.ShowDialog(); // dès qu'on ferme form2 on revient à ce point dans la fonction...
    		this.Show();
    	}
    }
     
    class Form2
    {
    	private void button_Click(object sender, EventArgs e)
    	{
    		this.Close(); // et c'est tout !
    	}
    }
    Ou alors, si tu préfères n'utiliser qu'une seule instance de Form2, quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    class Form1
    {
    	private Form2 form2;
     
    	public Form1()
    	{
    		InitializeComponent();
    		form2 = new Form2();
    	}
     
    	private void button_Click(object sender, EventArgs e)
    	{
    		this.Hide();
    		form2.ShowDialog(); // dès qu'on ferme form2 on revient à ce point dans la fonction...
    		this.Show();
    	}
    }
    A adapter selon ce que tu veux faire exactement...



    Citation Envoyé par NeraOne
    Ptin j'ai mis 4 minutes à écrire mon message... lol, j'avais pas vu celui de Astartee
    ça m'arrive tout le temps, ça, passer 10 minutes à peaufiner une réponse puis me rendre compte que je me suis fait griller...

    EDIT : corection errers frppe

Discussions similaires

  1. Passage des parametre entre deux forms
    Par randriamanana dans le forum C#
    Réponses: 6
    Dernier message: 19/11/2007, 17h01
  2. [VB]Relation entre deux form.
    Par dann dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 20/03/2006, 09h07
  3. [VB.NET] Passer une valeur de control entre deux form
    Par TheMacleod dans le forum Windows Forms
    Réponses: 5
    Dernier message: 27/12/2005, 11h07
  4. [VB .Net][Forms] Interaction entre deux forms
    Par plasticgoat dans le forum Windows Forms
    Réponses: 7
    Dernier message: 24/08/2005, 13h14
  5. [VB.NET] Perte de focus entre deux form
    Par toniolol dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/07/2005, 08h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo