Ajout dynamique d'onglets et autres composants

Soyez le premier à donner votre avis sur cette source.

Vue 11 948 fois - Téléchargée 15 781 fois

Description

Etant en train de réaliser un chat, je recherchais, pour les messages privés, à faire des onglets dynamiques.

Or le composants SSTab, qui peut bien gérer cela, ne me plait pas vraiment car il se présente en plusieurs lignes et je n'ai pas trouvé d'astuce pour l'éviter.
Alors j'ai dû me rabattre sur le composant TabStrip et essayer de "dynamiser" tout ça !

Ce code est très basique mais il pourrait aider certains.
Un zip est à disposition pour ceux qui ont la flemme de tout faire :)

----------
Ce code source a été mis à jour de façon à satisfaire les questions indiquées dans les commentaires. J'espère qu'il sera assez suffisant à présent ! ;)

Source / Exemple :


'Tout d'abord, créez un nouveau projet avec pour nom de feuille Form1
'Ensuite, ajoutez le composant "Microsoft Windows Common Controls 6.0 (SP4)"
'Insérez le contrôle d'onglets TapStrip1 dans la feuille
'Puis, insérez les composants suivants avec comme propriété "Index = 1" :
'- Une Frame par dessus l'onglet nommée Frame1
'- Un TextBox hors de la Frame1 (que vous pouvez glisser par dessus après)
'- Une ImageBox hors de la Frame1 (que vous pouvez glisser par dessus aussi !)
'- Un Label hors de la Frame
'- Un CheckBox hors de la frame

'Enfin, copiez-collez ce code:

Public nTop As Integer      'Entier de position verticale des checkboxes

'Bouton d'ajout des composants

Private Sub Command1_Click()

    Dim nIndex As Integer   'Index de l'onglet ajouté
    Dim nIdsel As Integer   'Index de l'onglet sélectionné
    
    'Initialisation de la position du nouveau checkbox
    nTop = nTop + 300
    
    'Index de l'onglet rajouté
    nIndex = TabStrip1.Tabs.Count + 1
    
    'Recherche de l'index de l'onglet sélectionné
    nIdsel = TabStrip1.SelectedItem.Index
    
    'Ajout de l'onglet
    TabStrip1.Tabs.Add
    TabStrip1.Tabs(nIndex).Caption = "Onglet " & nIndex
    
    'Ajout de la frame
    Load Frame1(nIndex)
    Frame1(nIndex).Caption = "Frame " & nIndex
    Frame1(nIndex).Visible = True
    
    'Ajout du textbox dans le nouvel onglet
    Load Text2(nIndex)
    Text2(nIndex).Text = "Text " & nIndex
    Text2(nIndex).Visible = True
    
    'Ajout de picturebox dans le nouvel onglet
    Load Picture1(nIndex)
    Picture1(nIndex).ToolTipText = "Picture " & nIndex
    Picture1(nIndex).Visible = True

    'Sélection de l'onglet rajouté
    TabStrip1.Tabs(nIndex).Selected = True
    
    'Mise au premier plan de la frame et du textbox
    Frame1(nIndex).ZOrder 0
    Text2(nIndex).ZOrder 0
    Picture1(nIndex).ZOrder 0
    
    'Ajout et placement du nouveau checkbox
    Load Check1(nIndex)
    Check1(nIndex).Caption = "Check " & nIndex
    Check1(nIndex).Visible = True
    Check1(nIndex).Top = nTop
    
    'Ajout et placement du nouveau label
    Load Label1(nIndex)
    Label1(nIndex).Caption = "Label " & nIndex
    Label1(nIndex).Visible = True
    Label1(nIndex).Top = nTop

End Sub

'Chargement du formulaire

Private Sub Form_Load()

    'Initialisation de la position des checkboxes
    nTop = Check1(1).Top
    
End Sub

'Click sur les onglets

Private Sub TabStrip1_Click()

    Dim nIdsel As Integer   'Onglet sélectionné
    
    'Affichage des composants correspondants
    nIdsel = TabStrip1.SelectedItem.Index
    Frame1(nIdsel).ZOrder 0
    Text2(nIdsel).ZOrder 0
    Picture1(nIdsel).ZOrder 0

End Sub

Conclusion :


Voilà ! Après, bien sûr ce code et à remanier à sa sauce :)
Pour toute suggestion, n'hésitez pas à laisser vos commentaires !

Kab

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
mercredi 1 décembre 2004
Statut
Membre
Dernière intervention
6 novembre 2007

Moi je n'arrive pas à rajouter le composant "Microsoft Windows Common Controls 6.0 (SP4)"
je sais pas c'est quoi le problème
Messages postés
3
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
24 avril 2004

Vala, une petite amélioration du code en fonction des commentaires est maintenant disponible :)
Messages postés
373
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
19 juin 2007

si tu veux jy suis parvenu pr mes textbox je peux tenvoyer une source pas mal tu peux me mailer sur codes source ou me prendre sur msn
Messages postés
15
Date d'inscription
jeudi 15 avril 2004
Statut
Membre
Dernière intervention
23 juin 2004

j'ai le meme probleme avec les labels.

pourquoi?
Messages postés
373
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
19 juin 2007

Moi je n'arrive pas a utiliser ce code pour pouvoir remplacer les textbox par des picturebox
Comment cela se fait-il ?
svp A l'aide

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.