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 :

Comment intégrer une Windows Forms dans le TabControl d'un autre Windows Forms


Sujet :

Windows Forms

  1. #1
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut Comment intégrer une Windows Forms dans le TabControl d'un autre Windows Forms
    Bonjour,

    j'ai développé une application Windows Forms.
    Le Windows Forms est composé de contrôles différents, des labels, des textbox, des panels, etc.
    Cette Windows Forms permet sur lecture d'un code-barre, d'afficher les caractéristiques du produit scanné (Le code-barre est en fait transmis à la couche métier qui interroge la base de données par le biais de la couche données).

    Aujourd'hui, j'aimerais intégrer cette Windows Forms et ses fonctionalités dans le TabControl d'un autre Windows Forms. Comme malheureusement, je ne pense pas réutilisabilité, me voici obliger de modifier du travail existant. Quelle perte de temps. Ca m'apprendra.

    Que me conseillez-vous ? Je pense transformer ce Windows Forms en un controle utilisateur. Mais j'ai peur de rencontrer des difficultés quand aux fonctionnalités ( réception du code-barre, interrogation de la couche métier, etc.)
    Existe-t-il d'autres solutions ?
    Qu'en pensez-vous ? Quels conseils me donneriez-vous ?
    Je sais que c'est assez vague et pas évident sans plus de détails, mais ça serait bien cool si vous aviez des petites idées.
    Merci.

  2. #2
    En attente de confirmation mail
    Inscrit en
    Août 2006
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Août 2006
    Messages : 550
    Points : 669
    Points
    669
    Par défaut
    A Priori, je pense que tu peux transformer ton form en control utilisateur sans problème. En tout cas, je ne vois pas ou cela pourrait poser un problème.

  3. #3
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut
    Bonjour et merci pour la réponse.

    En fait, j'ai essayé mais le problème qui se pose est le suivant:

    Dans mon application Windows original, une Windows Form enfant apparaît lors du clique d'un bouton. Si j'utilise un User Control, cette Windows Forms ne sera pas importer en même temps que l'import du contrôle dans un autre projet. Vois-tu ? Et là je suis assez embêté avec ça.

    Merci d'avance.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 66
    Points : 80
    Points
    80
    Par défaut
    Je ne comprends pas le problème que tu as. Rien n'empêche un user control d'ouvrir une Form.
    Si le projet qui contient l'écran avec les onglets a accès à l'user control alors il aura aussi accès au form qui va avec (celui qui se lance quand on clique sur le bouton).

  5. #5
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut
    Bonjour,

    Rien n'empêche un user control d'ouvrir une Form
    Je suis d'accord avec ça.
    J'ai développé à la base un projet Windows Forms indépendant. Dans le formulaire principal, lorsque l'utilisateur clique sur un bouton, un autre formulaire s'ouvre.

    Maintenant, dans le cadre d'une application client/serveur, je dois intégrer cette WindowsForms dans une autre application WindowsForms, qui plus est dans l'un des onglets d'un TabControl.

    Je ne savais pas trop comment faire, hormis de transformer mon application Windows Forms initial en contrôle utilisateur pour pouvoir l'intégrer facilement dans l'onglet du TabControl.
    Donc dans le projet Windows Forms initial, j'ai transformé le formulaire principal en Contrôle Utilisateur. J'ai généré mon assembly.
    Il faut ensuite que j'importe dans la barre d'outils de Visual Studio l'assembly généré pour pouvoir drag'n droper mon contrôle utilisateur vers l'onglet du TabControl. Mais en faisant ainsi, le formulaire enfant appelé dans le projet initial n'est plus présent.
    Vois-tu ce que je veux dire ?

    Merci pour l'aide.

  6. #6
    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 Ou encore
    Une autre solution qui fonctionne bien aussi...

    Dans ton onglet de ton tab control, tu voudrais afficher la form que tu avais
    precedemment écrite...

    Pourquoi ne pas faire le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                Form3 toto = new Form3();
                toto.TopLevel = false;
                toto.FormBorderStyle = FormBorderStyle.None;
                tabControl1.TabPages[0].Controls.Add(toto);
                toto.Show();
    ou Form3 est la forme qui tu veux integrer (et ne pas la passer en UserControl)
    Tu te contentes d'ajouter un controle à ton onglet... Il faut juste
    preciser TopLevel parce qu'on ne peut ajouter un controle de niveau Top à un
    autre controle... (LE borderStyle est pour eviter de voir la caption bar autour
    de ton controle.. Apres, tu peux en changer l'emplacement, la taille,etc..)

    Bref, pourquoi faire un UserControl d'une fenetre existante quand on peut
    l'integrer en 4 lignes dans un autre controle ?


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

  7. #7
    Candidat au Club
    Homme Profil pro
    Maître d'Oeuvre indépendant
    Inscrit en
    Juin 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Maître d'Oeuvre indépendant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2010
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour, désolé de remonter ce topique, mais ça m'intérresse , je cherche à importer ma userform dans un tabpage, j'ai utiliser le code TheMonz31 mais ça fonctionne pas, j'ai une erreur sur la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tabControl1.TabPages[0].Controls.Add(toto)
    Qui dit: "Un accès à la propriété doit assigner la propriété ou utiliser sa valeur"
    "cette expression ne produit pas de valeur"

    Quelqu'un peut il maider?
    Merci.

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Analyste Concepteur SI
    Inscrit en
    Septembre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Concepteur SI
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 37
    Points : 37
    Points
    37
    Par défaut
    Bonjour,

    J'ai utilisé le code plus haut afin d'encapsuler mon Form dans la tabPage de mon tabcontrol et ça a parfaitement fonctionné.

    J'aimerais savoir comment faire pour bloquer mon form à l'intérieur de la tabPage.
    En effet j'ai un menu dans le form que j'ai encapsulé et dès que je clique sur un des boutons du menu je sort du tabcontrol.


    Merci .

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Analyste Concepteur SI
    Inscrit en
    Septembre 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Concepteur SI
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 37
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par Fuzo13 Voir le message
    Bonjour,

    J'ai utilisé le code plus haut afin d'encapsuler mon Form dans la tabPage de mon tabcontrol et ça a parfaitement fonctionné.

    J'aimerais savoir comment faire pour bloquer mon form à l'intérieur de la tabPage.
    En effet j'ai un menu dans le form que j'ai encapsulé et dès que je clique sur un des boutons du menu je sort du tabcontrol.


    Merci .
    J'ai finalement trouvé la solution je la partage si quelqu'un a le même problème que moi à l'avenir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public partial class Form2 : Form
    {
             //... Winform avec le tabcontrol
             private void Form2_Load(object sender, EventArgs e)
            {
                Form1 toto = new Form1();
                toto.TopLevel = false;
                toto.FormBorderStyle = FormBorderStyle.None;
                tabControl1.TabPages[0].Controls.Add(toto);
                toto.Show();
            }
            //...
    }
    Definir le tabcontrol en static public
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
           static public System.Windows.Forms.TabControl tabControl1;

    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
     
    public partial class Form1 : Form
    {
            //.... Winform encapsulée dans le tabcontrol du form2 
            private void ToolStripMenuItem1_Click(object sender, EventArgs e)
            {
                FormCibleduClick FormCibleduClick = new FormCibleduClick();
     
                FormCibleduClick.TopLevel = false;
                FormCibleduClick.FormBorderStyle = FormBorderStyle.None;
                Form2.tabControl1.TabPages[0].Controls.Add(FormCibleduClick );
     
                FormCibleduClick.Show();
                this.Hide();
            }
            //...
    }

Discussions similaires

  1. [QtGui] Comment intégrer une case à cocher dans une QTextDocument ?
    Par Triton972 dans le forum PyQt
    Réponses: 4
    Dernier message: 18/10/2013, 13h00
  2. Comment intégrer une doc HTML dans Eclipse ?
    Par ben.IT dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 09/06/2010, 15h12
  3. Comment intégrer une phrase php dans le CSS?
    Par Marc22 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 02/02/2010, 10h23
  4. Comment intégrer une requête SQL dans Rails ?
    Par Didier Pitre dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 28/05/2008, 08h59
  5. comment intégrer une page html dans swf?
    Par jeanman dans le forum Intégration
    Réponses: 3
    Dernier message: 10/05/2006, 19h36

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