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 :

ajouter des controles sur une autre form


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Points : 196
    Points
    196
    Par défaut ajouter des controles sur une autre form
    Bonjour,

    J'ai une application qui se compose d'une fenêtre principale sur laquelle j'ai ajouté un TabControl avec initialement 2 onglets (tabpage) .

    Sur chacun des onglets j'ai ajouté un Panel et je viens ajouter dynamiquement une form différente sur ces panels.

    J'ai donc Form0 qui contient 1 TabControl de 2 TabPages.
    TabPage1 contient Panel1 sur lequel je viens mettre Form1
    TabPage2 contient Panel2 sur lequel je viens mettre Form2

    Depuis mon Form1, je souhaites que l'utilisateur puisse ajouter un controle sur Form2,mais également qu'il puisse ajouter des TabPage au TabControl de Form0 (sachant que ces tabpages additionnels devraient être associés avec une Form3).

    Je bloque un peu sur la manière d'ajouter un nouvel onglet à mon TabControl ainsi que sur la manière d'ajouter un controle à mon Form2.

    Auriez vous une idée de la marche à suivre pour réaliser tout ça ? Voir un petit exemple ? Merci.

  2. #2
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Rajouter un onglet au TabControl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    System.Windows.Forms.TabPage tabPage1 = new System.Windows.Forms.TabPage();
     
    tabControl1.Controls.Add(tabPage1);
    Pour rajouter des contrôles à une form :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyForm.Controls.Add(myControl);
    Pourquoi ajouter des forms sur des panels et pas directement des composants ?
    Ou alors des UserControl si tu veux quelque chose de particulier.

    Parce que dans ce cas précis, une form ne sert absolument à rien.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Points : 196
    Points
    196
    Par défaut
    Merci pour ta réponse.

    Citation Envoyé par laedit Voir le message
    Pourquoi ajouter des forms sur des panels et pas directement des composants ?
    Ou alors des UserControl si tu veux quelque chose de particulier.

    Parce que dans ce cas précis, une form ne sert absolument à rien.
    Je ne comprend pas ce que vient faire ici l'idée de composant (peut être parce que je ne maitrise pas suffisamment ?).

    Pour essayer de résumer d'une autre manière mon besoin:

    - sur le premier onglet de mon TabControl (se trouvant sur Form0) j'ai une ListBox présentant une liste d'équipements que l'utilisateur peut choisir de visualiser. sur mon second onglet j'ai une page de visualisation de plusieurs équipements.

    Pour chaque équipement, je peut choisir de visualiser 2 types d'informations. La première est une information synthétique qui me dit que l'équipement fonctionne ou pas (consultable sur le second onglet, dans un tableau quelconque par exemple). La seconde est une information plus détaillée qui me donnera en plus des informations précises sur cet équipement (consultable sur on onglet spécial à ajouter au TabControl). Chacun de ces modes étant gérés sur 2 forms indépendants Form1 et Form2.

    L'idée de gérer cela sous la forme de plusieurs forms différentes c'estpour découper le code et les IHM de manière à ce que cela soit plus clair (pour moi), car en plus je souhaite qu'il soit possible de sortir du mode de visualisation en onglet et d'afficher de manière autonome les informations détaillée d'un équipement.

    Je parvient à gérer ce que je veut faire si je 'reste' dans la même form, mais ce qui m'intéresse vraiment c'est de pouvoir agir, depuis une form donnée, sur les controles d'une autre form (peut être n'est ce pas possible ?).

    Je me demandais si avec les delegués, cela n'aurait pas été jouable ?
    Qu'en pensez vous ?
    Peut être fais je fausse route au niveau conception; dans ce cas, pouvez vous m'aiguiller ?

    Merci à vous

  4. #4
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Sans faire appel aux délégués, tu peux le faire en utilisant des propriétés publiques d'une form qui aurait été créé par une première.

    Par exemple, l'utilisateur sélectionne un équipement dans la liste et décide d'avoir des renseignement généraux, il clique sur un bouton qui lui ouvre une deuxième form. Cette deuxième forme aura été crée par la première et pourra donc être manipulé par la elle.

    Par contre, je ne vois pas en quoi le fait d'utiliser des forms découpe le code des IHM, ça, ça se fait seulement en utilisant des classes métier qui transmettront les données aux IHM dont le seul boulot sera de les afficher.

    Par composant j'entends un control, tout simplement.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Points : 196
    Points
    196
    Par défaut
    En fait j'ai réussi à faire ce que je souhaitais en créant une variable de type internal (dans Form0) puis en créant des fonctions public dans Form0 me permettant d'ajouter un onglet ou un control dans l'onglet que je souhaitais.

    Merci.

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

Discussions similaires

  1. [Débutant] Copier des controles sur une autre page d'un tabpage
    Par mecyber25 dans le forum C#
    Réponses: 20
    Dernier message: 19/09/2012, 19h23
  2. Ajouter des raccourcis sur une form
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 09/03/2011, 17h32
  3. Réponses: 1
    Dernier message: 13/07/2009, 21h05
  4. [C#2.0]Dupliquer des controles sur une autre form
    Par chnew dans le forum Windows Forms
    Réponses: 5
    Dernier message: 12/05/2006, 09h05
  5. ajouter des control dans une onglet de sstab sous VB6
    Par aymane_farissi dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/09/2005, 13h44

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