Copier des éléments dans une tab control [Résolu]

fabulofr 116 Messages postés lundi 15 décembre 2003Date d'inscription 8 novembre 2011 Dernière intervention - 8 nov. 2011 à 11:42 - Dernière réponse :  Utilisateur anonyme
- 8 nov. 2011 à 18:02
Bonjour !
J'ai une petite question.
J'ai un tab control (onglets) nommé "UserTabs" sur ma form, sous VB.NET 2010.

Il y a autant d'onglet que d'utilisateurs ouverts sur le logiciel.
J'aimerai savoir, si à partir d'un "modèle" d'onglet, on pourrait créer des nouveaux onglets, et copier dedans tous les contrôles que renferme l'onglet d'origine ? Ou alors faut-il créer de nouveaux objets manuellement, ce qui serait très long à écrire, vu que j'ai plus de 3 objets facilement sur un onglet ?
D'avance merci ;-)
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
fabulofr 116 Messages postés lundi 15 décembre 2003Date d'inscription 8 novembre 2011 Dernière intervention - 8 nov. 2011 à 16:18
3
Merci
Solution trouvée:
Créer un contrôle utilisateur qui contient tous les éléments que je souhaite dans mon nouveau tabpage.
Créer un nouveau tabpage.
Insérer dans ce nouveau tabpage le contrôle utilisateur.
Si ça peut servir à d'autres, c'est une solution simple et efficace.

Merci fabulofr 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 82 internautes ce mois-ci

Commenter la réponse de fabulofr
Utilisateur anonyme - 8 nov. 2011 à 12:42
0
Merci
Bonjour,
Dans ton cas, tu pourrais utiliser l'héritage.
Voici un petit exemple à tester avec un TabControl sur un formulaire :
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'ajout de tabpages au TabControl
        TabControl1.Controls.Add(New clsTabPage("test1", Color.Blue))
        TabControl1.Controls.Add(New clsTabPage("test2", Color.Red))
        TabControl1.Controls.Add(New clsTabPage("test3", Color.Chartreuse))
    End Sub

    Public Class clsTabPage
        'hérite de tabpage
        Inherits TabPage

        'nouveau picturebox à insérer dans le tabpage
        Dim pctImage As New PictureBox With {.BorderStyle = BorderStyle.Fixed3D}

        'instanciation d'un nouveau tabpage
        Sub New(ByVal Texte As String, ByVal CouleurPictureBox As Color)
            'définition du texte
            Me.Text = Texte
            'modification d'une propriété d'un objet
            pctImage.BackColor = CouleurPictureBox
            'ajout d'un objet au tabpage
            Me.Controls.Add(pctImage)
        End Sub
    End Class
End Class
Commenter la réponse de Utilisateur anonyme
fabulofr 116 Messages postés lundi 15 décembre 2003Date d'inscription 8 novembre 2011 Dernière intervention - 8 nov. 2011 à 12:50
0
Merci
Merci !
Je teste ça de suite ;-)
Commenter la réponse de fabulofr
fabulofr 116 Messages postés lundi 15 décembre 2003Date d'inscription 8 novembre 2011 Dernière intervention - 8 nov. 2011 à 12:54
0
Merci
Thanks, ça ajoute bien des tabs, mais ça ne copie pas les éléments présents dans un tab "modèle" :-/
En fait je les place à la main, c'est plus "facile" pour la mise en page. Et comme j'ai dit, j'en ai + de 200 facile, donc les faire un a un à la main j'en ai pour des jours xD
Commenter la réponse de fabulofr
fabulofr 116 Messages postés lundi 15 décembre 2003Date d'inscription 8 novembre 2011 Dernière intervention - 8 nov. 2011 à 14:03
0
Merci
J'ai essayé ça:

   Private TabCount As Integer = 0
   Private Sub AddTab(ByVal Title As String, ByVal AccountId As Integer)
        TabCount = TabCount + 1
        Dim TempForm As New TabPage(Title)
        TempForm.Name = "Account-" & AccountId
        TempForm.Text = "Onglet " & TabCount
        For Each controlObject As Control In TabControl1.TabPages(1).Controls
            controlObject.Name &= TabCount
            controlObject.Text &= TabCount
            TempForm.Controls.Add(controlObject)
        Next
        TabControl1.Controls.Add(TempForm)
    End Sub

Mon tabcontrol(.tabpage(0) est reservé et sert à autre chose.
Mon tabcontrol1.tabpage(1) comprend une combo et un bouton et c'est celui que je veux copier.
Si j'appelle AddTab("coucou",1); et AddTab("coucou",2), j'obtiens bien 2 nouveaux onglets, s'appelant bien onglet 1 et onglet 2.
Problème: le tabpage(1) est vide et ne comprend désormais plus aucun de mes élements de base.
Le nouvel onglet 1 contient ma combobox.
Le nouvel onglet 2 contient mon bouton....

HEEEEELP :D
Commenter la réponse de fabulofr
fabulofr 116 Messages postés lundi 15 décembre 2003Date d'inscription 8 novembre 2011 Dernière intervention - 8 nov. 2011 à 17:01
0
Merci
Par contre, j'ai des sub et fonctions dans mon user control qui s'appelle "UserAccountInterface". Comment les appeler ?
J'ai un code du style:

Dim Content As Control = New UserAccountInterface
Si je fais un "Content.RefreshAllTabForAccount()" ca ne fonctionne pas :
Erreur 1 'RefreshAllTabForAccount' n'est pas un membre de 'System.Windows.Forms.Control'.

Comment faire ?
Commenter la réponse de fabulofr
Utilisateur anonyme - 8 nov. 2011 à 18:02
0
Merci
Content que tu ai pu résoudre ton problème tout seul.
et comme j'ai dit, j'en ai + de 200 facile

Et pourtant dans ton premier post on peut lire :
vu que j'ai plus de 3 objets

Il est important de libeller correctement les questions afin d'obtenir des réponses adaptées.

Si on lit le règlement du forum en entier, on s'aperçoit qu'il n'est possible de formuler qu'une seule question par topic.
Je t'invite donc à ouvrir un nouveau sujet pour ta nouvelle question et de marquer celui-ci comme résolu.
Merci.
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.