Bonsoir,
J'ai un petit souci (de débutant).
J'ai créé un user control. Sur la méthode double click je souhaite
agir sur des propriétés d'autres contrôles.
Mon problème est que ces objets ne sont pas vu depuis mon user control.
(sniff !!)
![]()
Bonsoir,
J'ai un petit souci (de débutant).
J'ai créé un user control. Sur la méthode double click je souhaite
agir sur des propriétés d'autres contrôles.
Mon problème est que ces objets ne sont pas vu depuis mon user control.
(sniff !!)
![]()
Bonjour
Pas de réponse ?
Soit ma question est ridicule et je ne m'en suit pas rendu compte.
Soit je l'ai mal formulée.
Je reformule donc ma question.
1 -> J'ai créé un composant "user control" sur lequel j'ai intégré des labels et des picurebox.
2 -> Sur mon formulaire principal j'ai inséré un panel sur lequel j'ai positionné plusieurs objets issus de mon "user control".
3 -> Je souhaite positionner du code sur l'évenement "click" de mon "user control" afin que tous les objets issus de ce contrôle en hérite.
4 -> Ce code doit me permettre de changer la couleur de fond des autres objets
Problème : Quand je suis sur le code du "click" je ne vois pas les objets que
j'ai positionné sur mon formulaire principal (rien dans l'intelicence).
Merci par avance.
(et désolé si la question est basique, j'avance à taton et mes recherches ne sont pas forcement fructueuses)
Salut .
tu ne peux pas a partir de ton user controle acceder aux controles de ta form.
En terme de POO ça voudrait dire que si une classe A à un objet de type B alors l'objet de type B peut avoir accès aux membres de la classe A. Tout a fait impossible.
Salut,
Si t'as créé un UserControl et qu'il se trouve bien affiché sur ta form, c'est que certainement, il est passé par laform.Controls.Add(MonUserControl), eh bien dans ton evenement où n'importe où dans ton UserControl, tu peut faire this.Parent, il s'agit d'une référence sur le control conteneur de ton usercontrol(une form, un panel...) qui lui dispose de la collection Controls, donc tu pourras faire:
for(int i=0;i<this.Parent.Controls.Count;i++)
this.Parent.Controls[i].BackColor=Macouleur;
J'espère que c'est ce que tu recherche.
ça ne lui donne pas le compo spécifique qu'il cherche, mais effectivement c'est une solutionEnvoyé par DarkMolo
![]()
Merci.
Je pense que cela dervrait faire l'affaire.
Je cours de ce pas vérifier si cela fonctionne.
Merci encore pour votre aide.
A+
C'est pour ça qu'il existe les évènements.Envoyé par Gloups
Ton arborescence de controle est hiérachique : les sous-controles contenus dans un control ne DOIVENT PAS savoir quel control les contient.
Pourquoi ? Parce que quand on fait un control, c'est pour pouvoir l'utiliser indifféremment dans n'importe quel control.
La seule façon pérènne de faire communiquer un control avec ses sur-controls, c'est de créer des évènements.
Pour info, c'est exactement ce qui arrive quand tu clicke sur un bouton : ton bouton lève l'évènement 'click', le control qui le contient est averti et fait ce qu'il a à faire.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager