Class et gestion d'évenement [Résolu]

Signaler
Messages postés
5
Date d'inscription
mardi 27 juin 2006
Statut
Membre
Dernière intervention
8 mai 2020
-
Messages postés
5
Date d'inscription
mardi 27 juin 2006
Statut
Membre
Dernière intervention
8 mai 2020
-
Bonjour,

Étant novice dans le domaine de la programmation, je rencontre un petit soucis concernant les "class".

voilà j'ai créé une class qui insère dynamiquement des labels. Ainsi, je peux ajouter autant de labels que je veux là où je clic, en utilisant un truc du genre :

Set obj = FormPrincipal.Controls.Add("label", "labelnumero" & i)
dans une méthode de ma class

Le problème que je rencontre, c'est pour récupérer un événement clic sur les labels créé dynamiquement.

J'ai compris qu'habituellement, quand ont construit visuellement l'interface au préalable il faut utiliser quelque chose comme :

sub label1_click()
MsgBox "clic sur le label1"
end sub

mais là, je met quoi ??
sub ???_click()
je sais pas à l'avance combien l'utilisateur va creer de label !?
comment creer une méthode au sein de ma class qui renvoie le nom du label cliqué?

est ce que c'est quelque chose du genre ?
sub obj_click()


Excuser moi de pas forcément utiliser le bon vocabulaire, et merci pour vos réponses.






Doute de toi même, avant de douter des autres .

8 réponses

Messages postés
4
Date d'inscription
mardi 2 mai 2006
Statut
Membre
Dernière intervention
21 juin 2011

Salut,

Ton problème est plus un problème de compréhension que de code.
La fonction généré par l'editeur qui est lier au click sur un label est lier a ce label dans la partie de code généré automatiquement de ton interface (le form1.g.vb si je ne m'abuse)

toi tu cree dynamiquement ton control tu doit donc faire toutes les ligne de code a la mains (dimensionnement, positionnement, couleur,.....).

j'envoi ce code plus au moins au hazard mais le resultat final devrai y ressemblé :
Set obj as label = FormPrincipal.Controls.Add("label", "labelnumero" & i)

addHandler obj.onClick , AdressOff mafonctionClickSuLabel

private sub  mafonctionClickSuLabel(sender as Object, e as eventArg)
messageBox.show("coucou")
end sub


le addHandler abonne une fonction sur l'evenement click du label.
voila ton probleme devrai etre résolut.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Bonjour,

Pour un novice en développement, evite de te compliquer la vie.
VB6 (si tu développes bien sous VB6 et non VBA d'office) :
- sait gérer les groupes de contrôles indexés

regarde ce que fait ceci :
Un nouveau projet
sur un Form :
- un contrôle label nommé Label1
- mets 0 (zéro) à la propriété Index de ce label

et ce code exemple):

Private Sub Form_Activate()
  Label1(0).Move 0, 0, 1000, 1000
  For I = 1 To 3
    Load Label1(I)
    Label1(I).Caption = "monlab N° " & I
    Label1(I).Visible = True
    Label1(I).Move Label1(0).Width * I
  Next
End Sub


Private Sub Label1_Click(Index As Integer)
  MsgBox "tu as cliqué sur le label label1(" & Index & ")" & _
  " dont le caption est " & Label1(Index).Caption
End Sub

Lance ===>> tu as maintenant 4 labels indexés
Clique sur l'un d'entre eux et regarde.

Tu comprendras vite
Plus simple, non ?



____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est

Bonsoir,
Étant novice dans le domaine de la programmation

C'est dommage de débuter avec un langage obsolète
Bonne nuit.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Bonjour, banana32
C'est dommage de débuter avec un langage obsolète

Lorsque (personnellement) je passerai à autre chose, ce ne sera en aucun cas pour aller vers VB.Net (que j'estime lourd et lent)

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est

Bonjour ucfoutu,
VB.Net (que j'estime lourd et lent)

C'est aussi ce que je me suis dit en passant de vb6 à vb.net mais après avoir observé l'explorateur d'objets qui dévoile les possibilités offertes par le framework, l'intellisense qui aide énormément grâce à la suggestion de syntaxe et enfin l'aide des cours de Mr Plasserre, je me suis dit que ça valait le coup d'essayer.
Tu penses migrer vers quel langage ?
Bonne après-midi
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Tu penses migrer vers quel langage ?

Après ce que j'ai compris des buts (à peine cachés) de Microsoft ? ===>> n'importe quoi (y compris JAVA) qui ne soit pas Microsoft.
Mais à chacun son regard posé sur les choses, hein ! Le mien est celui d'un vieux singe et d'un non-maso.


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
Messages postés
5
Date d'inscription
mardi 27 juin 2006
Statut
Membre
Dernière intervention
8 mai 2020

Doute de toi même, avant de douter des autres .
merci pour ces deux possibilités bien utiles !!!
Messages postés
5
Date d'inscription
mardi 27 juin 2006
Statut
Membre
Dernière intervention
8 mai 2020

Du coup la solution de pacificateur correspond exactement à ce que j'avais en tête, mais je vais plutôt mettre en œuvre la solution d'ucfoutu finalement beaucoup plus pratique ;)

merci encore

Doute de toi même, avant de douter des autres .