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 :

[C#] Application MDI (instancier les form enfants)


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 29
    Points : 25
    Points
    25
    Par défaut [C#] Application MDI (instancier les form enfants)
    Bonjour,
    mon problème est le suivant :
    1) je créé 2 formulaires dont le premier est le container (IsMdiParent=true) et le second est l'enfant.
    2) je souhaite instancier directement au lancement le second formulaire sans l'afficher car je ne veux pas pouvoir l'instancier plusieurs fois.
    J'ai modifié le lancement de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    static void Main() 
    		{
    			Application.EnableVisualStyles();
    			Application.Run(new MainForm());
    			Form Form_Test=new Test();
    			Form_Test.MdiParent=MainForm;	
    		}
    Ca n'a pas marché car une variable était demandée au lieu d'une classe (normal en somme). J'ai fait les mofifications suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    static void Main() 
    		{       Form F_Mainform = new MainForm();
    			Application.Run(F_MainForm);
    			Form Form_Test=new Test();
    			Form_Test.MdiParent=F_MainForm;
                    }
    et là, ça marche mais à la fermeture j'ai l'erreur suivante :
    Une exception non gérée du type 'System.ArgumentException' s'est produite dans system.windows.forms.dll

    Informations supplémentaires : Le formulaire qui a été spécifié comme étant le MdiParent pour ce formulaire n'est pas un MdiContainer.

  2. #2
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    en faisant ca ca aurait aussi fonctionné je pense
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    static void Main()
          {
             Application.EnableVisualStyles();
             Application.Run(new MainForm());
             Form Form_Test=new Test();
             Form_Test.MdiParent=this;   
          }
    Apres je vois pas trop ce qui te provoque ton exception

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  3. #3
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    je rectifie il faut aussi mettre ceci je pense
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.IsMdiContainer = true;
    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juillet 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    Merci, mais ça ne marche pas.
    Il me dit que :
    le mot clé this n'est pas valide dans un initialiseur de propriété statique, de méthode statique ou de champ statique.

  5. #5
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    deporte le code dans l'evenement Load et laisse Application.Run(new MainForm()); dans la methode main, cela devrait fonctionner.

    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juillet 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 29
    Points : 25
    Points
    25
    Par défaut
    Merci, ça fonctionne impeccable !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/12/2013, 12h17
  2. Application MDI et Ses Forms MDICHILD
    Par soft_balade dans le forum Débuter
    Réponses: 8
    Dernier message: 09/11/2008, 09h21
  3. accès a un attribut d'une mdi depuis les forms filles
    Par Taaroa dans le forum Windows Forms
    Réponses: 7
    Dernier message: 27/06/2007, 16h20
  4. instancier les formes de l'application 1 seule fois
    Par iam dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/06/2006, 15h27
  5. Réponses: 7
    Dernier message: 27/10/2005, 14h24

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