begin process at 2012 02 09 03:11:55
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaire

 > AJOUT DYNAMIQUE D'ONGLETS ET AUTRES COMPOSANTS

AJOUT DYNAMIQUE D'ONGLETS ET AUTRES COMPOSANTS


 Information sur la source

Note :
8 / 10 - par 3 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaire Niveau :Débutant Date de création :24/10/2003 Date de mise à jour :25/04/2004 12:05:55 Vu / téléchargé :9 298 / 15 644

Auteur : kabeydia

Ecrire un message privé
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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

  • '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
'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

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip HSCROLLBAR POUR L'ARRIÈRE PLAN par 320C
Source avec Zip Source avec une capture Source .NET (Dotnet) METTRE VOTRE FORM VB.NET EN PLEINE ÉCRAN par Gabilach
RECHERCHE DANS UNE LISTE À PARTIR D'UN CHAMP TEXTE par jmeunier
Source avec Zip GESTION DES COMSOMMABLE par gboraud
Source .NET (Dotnet) CALCULSURFACECERCLE par fettah43

Commentaires et avis

Commentaire de ThunderPsycho le 26/10/2003 02:44:57

Simple et efficace ;o) 9/10

Commentaire de kabeydia le 26/10/2003 12:48:57

Mici :)

Commentaire de turkill le 19/11/2003 12:42:30

Cool et pour ajouter des checkbox ? J'ai crée un checkbox j'ai ajouté du code comme pour le text2 que tu as fait et ca marche po :( plz help

Commentaire de turkill le 19/11/2003 13:01:54

C'est bon ca marche pour ce qui est des checkbox mais comment faire en sorte qu'ils évitent d'écraser les checkbox ou textbox l'un par dessus l'autre s'il y a plusieurs demandes de checkbox ??? merci => turkill2@hotmail.com

Commentaire de kabeydia le 19/11/2003 19:30:56

Tu peux faire un décalage avec les propriétés .left et .top

Commentaire de Valombre le 19/02/2004 11:19:56

Je me suis inspiré de ce code afin de créer et placer dynamiquement des frame sur une autre... sauf que sur les frames que j'ajoute, il est censé il y avoir des boutons qui n'apparaissent pas :(

Je force l'affichage avec Command(id).Visible = true et Command(id).zorder 0
Mais en mode debuggage j'ai constaté que Visible reste a false

Quelqu'un a une explication?

Commentaire de jotrash le 21/02/2004 10:48:04

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

Commentaire de riderbmx le 23/04/2004 15:09:45

j'ai le meme probleme avec les labels.

pourquoi?

Commentaire de jotrash le 24/04/2004 11:35:07

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

Commentaire de kabeydia le 24/04/2004 16:17:37

Vala, une petite amélioration du code en fonction des commentaires est maintenant disponible :)

Commentaire de midida le 06/11/2007 13:34:28

Moi je n'arrive pas à rajouter le composant "Microsoft Windows Common Controls 6.0 (SP4)"
je sais pas c'est quoi le problème

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,402 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales