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

C# Discussion :

MDI, winform déjà ouverte


Sujet :

C#

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 9
    Points : 6
    Points
    6
    Par défaut MDI, winform déjà ouverte
    Bonjour,

    J'ai un Winform MDI avec une barre de menu à partir de laquelle j'ouvre d'autre pages winform dans ma page MDI.

    Cependant lorsque je clique 2 fois sur un bouton de ma barre de menu il m'ouvre 2 fois la même page.

    Comment faire. Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    il te faudrait 1 instance de ta fenetre et faire un Show plutot qu'un
    new TaForm() suivi d'un show()

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    salut

    il te faudrait 1 instance de ta fenetre et faire un Show plutot qu'un
    new TaForm() suivi d'un show()

    The Monz, Toulouse
    Stp pourais tu t'expliquer un peu parce que je suppose que pour la premiere fois qu'on clique sur le menu elle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    maform2 fr = new maform2();
    fr.Show();
    La deuxieme fois elle fait quoi?

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    si tu as mis ceci dans un bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    maform2 fr = new maform2();
    fr.Show();
    A chaque fois que tu cliques sur un bouton tu crée une nouvelle form et tu l'affiches.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    il faut que maForm soit un membre de la classe et non une variable declaré localement dans le handler de l'evenement

    Ensuite, dans la fonction activée sur le clique , il suffit de faire un test sur le fait que maForm != null ou pas... si pas null, on peut tester si elle est visible, et si ce n'est pas le cas, la rendre visible sinon on ne fait rien.. Et si elle n'existe pas, on la crée comme dans l'exemple que tu as proposé

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  6. #6
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    Ok! voila là j'ai bien compris. reste a savoir si l'auteur du sujet l'est aussi lol

  7. #7
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    lol j'ai cru que tu étais l'auteur du post.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  8. #8
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    if (Application.OpenForms["gestion_des_articles"] == null)
    {
    gestion_des_articles f = new gestion_des_articles();
    f.MdiParent = this;
    f.Show();
    }

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 766
    Points
    766
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach (Form form in Application.OpenForms)
    	if (form is maform2)
    	   form.BringToFront();
    	else
    	{
    		maform2 fr = new maform2() { MdiParent = this};
    		fr.Show();
    	}
    Les fautes d'orthographes sus-citées sont déposées auprès de leurs propriétaires respectifs. Aucune responsabilité n'est engagée sur la lisibilité du message ou les éventuels dommages qu'il peut engendrer.

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2015
    Messages : 25
    Points : 51
    Points
    51
    Par défaut
    Sinon l'utilisation d'un singleton permet de régler ce problème, non ?

Discussions similaires

  1. Winform MDI (winform principal avec menu déroulant)
    Par philo_neo dans le forum VB.NET
    Réponses: 2
    Dernier message: 05/08/2014, 03h42
  2. Réponses: 11
    Dernier message: 28/02/2007, 12h18
  3. [WinForms]Passer du MDI à la navigation par onglet
    Par jyl2002 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 14/10/2006, 13h15
  4. [WinForms]Connaitre le plan des forms ouvertes
    Par NiamorH dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 09/09/2006, 12h03
  5. Lister les fenêtres MDI ouvertes dans un menu
    Par say dans le forum C++Builder
    Réponses: 10
    Dernier message: 21/11/2005, 11h23

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