Définition d'évènement pour des controls générés dynamiquement

Résolu
Saiylar - 27 juin 2013 à 14:04
 Saiylar - 28 juin 2013 à 08:42
Bonjour,

Objectif : Je génère trois labels dynamiquement contenant le nom d'une personne. Je souhaite, après un clic sur un des noms générés, afficher une info-bulles de plusieurs lignes avec des informations sur cette personne (Age, Sexe, ...)

Problème : Je n'arrive pas à générer une info-bulle à plusieurs lignes. La commande ToolTipText des labels ne me sert à rien puisque apparemment, on ne peux écrire que sur une seule ligne

Je génère mes labels de la façon suivante après un click sur un bouton de mon form :

Private Sub Command1_Click()

Dim Tabl(3) As String

Tabl(0) = "Pierre"
Tabl(1) = "Marie"
Tabl(2) = "Michel"

For i = 1 To 3 Step 1
    Load Me.Label1(i)
    Label1(i).Visible = True
    Label1(i).Top = i * 1000
    Label1(i).Caption = Tabl(i - 1)
Next

End Sub

PS: J'ai un Label(0) sur mon form en masqué

Et maintenant je suis bloqué sur l'apparitions des infobulles ... J'ai essayé d'utiliser la fonction AddHandler mais VB6 ne reconnait pas la fonction :/ (peut etre qu'elle fonctionne uniquement sur des versions plus récentes ..)

AddHandler event, AddressOf eventhandler


Donc voila, si quelqu'un pouvait me filer un coup de main pour faire apparaitre ces infos-bulles, ca serait simpa ^^

Merci :)

5 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
27 juin 2013 à 18:38
Bonjour,

En général, en VB6, on préfères indexer les contrôles, c'est plus facile pour gérer les évènements.
Sinon, en création dynamique, j'avais essayer, il y a longtemps, et j'avais abandonné.

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
3
Bonjour Saiylar.

Je vous invite à lire sur internet
Prise en charge des info-bulles pour les utilisateurs de Visual Basic 6.0

Cordialement

Étant illettré, je signe d'une croix : ×
0
Vous pouvez également lire sur le net
Utilisation de P/Invoke pour appeler des API non gérées à partir de vos classes gérées


Étant illettré, je signe d'une croix : ×
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 juin 2013 à 20:25
Bonjour,
Nous sommes ici dans la section :
Forum > Visual Basic 6

Je rejoins alors TOTALEMENT l'avis donné par NHenry. Elle est de très loin, sous VB6, la solution la plus agile.




________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Grace à vos réponses j'ai pu résoudre mon problème :D

J'ai fais comme ça :

Private Sub Label1_Click(Index As Integer)
  Select Case Index
  Case 1:
    If Label2.Visible = False Then
        'Positionnement du label
        Label2.Left = Label1(Index).Left + Label1(Index).Width + 200
        Label2.Top = Label1(Index).Top
        'Renseignement des informations
        Label2.Caption = "Age : 29 ans" & Chr(10) & "Sexe : Femme"
        'Affichage du label
        Label2.Visible = True
    Else
        'Masquage du label
        Label2.Visible = False
    End If
  Case 2:
  'ect ....
  End Select
End Sub


Merci ! ^^
0
Rejoignez-nous