Problème d' un UserControl Container

Résolu
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
-
Messages postés
28
Date d'inscription
mardi 7 mars 2006
Statut
Membre
Dernière intervention
22 janvier 2007
-
Bonjour,


J' ai un Label UserControl dont la seule fonction est de s' ouvrir et
de se refermer en jouant sur sa propriété "Height".J' ai choisi un Label
pour avoir une transparence.
J' ai défini la propriété ControlContainer de cet UserControl à True de
façon à y placer d' autres contôls : essentiellement des Labels.Ainsi
lorsqu' il se ferme, ces derniers ne sont plus visibles (sorte de menu déroulant)
Jusque là tout va bien.
Le problème c' est que je suis obligé de cliquer deux fois pour éxecuter la procédure Label(x)_Click. Je suppose que lors du premier Click, c' est le UserControl qui prend le Focus. Les Labels ne possédant pas de Focus,
je ne peux alors pas jouer sur ça. Et je ne veux pas d' autres choses que des Labels.
Comment contourner ce problème...? Je compte sur vous...
Merci.

12 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Pourquoi avoir mis un label comme container, pourquoi pas une frame ?

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
Ca devient du luxe, mais tu peux essayer d'intercepter le clic avec des API puis de vérifier s'il est dans le cadre de ton Label...
Le frame ne peut pas être transparent ?
(Ou bien alors une picture box dans laquelle tu peints manuellement le fond du form pour faire comme si elle était transparente... Mais je sais pas si une picture box solutionnerait ton prob...)
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
salut,
frame transparent -> non. (sauf composants form2.0 mais non redistribuables)

pourquoi ne pas gérer l'évènement du click du usercontrol directement et voir ensuite selon les x y si/quel label s'y trouve?
++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
le for each est là pour çà... pas besoin de savoir combien de labels tu as pour savoir leur existance et position
de plus, rien ne t'empêche d'avoir un tableau de ces dimensions si besoin. tu peux même alors directement écrire sur le usercontrol et de passer des labels... (à voir avec la transparence si çà ne poste pas de problème...)

ps : réponse acceptée, c'est normalement pour le/les posts qui te donnent une réponse. mais bon ^^
++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
tu dois créer dynamiquement tes items (labels)
inutile de poser 255 labels si le menu ne contient que 3 items.

pose juste ton premier label (Label1(0))
Load Label1(X)
Label1(X). visible=true, X=... Y=.. etc...

bonne chance
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Merci tout d' abord d' avoir répondu aussi vite,
^^Le frame ne peut pas être transparent ?
    Est-ce possible ?

^^(Ou bien alors une picture box dans laquelle tu peints manuellement le fond du form pour faire comme si elle était transparente.
J' ai en effet un fond mais avec une image.Et donc je dois découper la partie correspondante à l' emplacement ou se placera ma PictureBoxContainer et placer cette partie découpée dans celle-ci.
Le problème c' est que peux être amené à ajouter d' autres labels dans cette PictureBox ou même changer son emplacement et donc je dois refaire le découpage.
En tout cas cette solution reste envisageable.et ça ne me coutera rien de redécouper
une fois le "menu" terminé.

Meci à vous deux.

chaibat
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Justement,
Je ne sais pas d' avance combien j' aurais de Labels (Items) dans mon
Pseudo-Menu.C' est varible selon les sous éléments dans le même prog et selon les
progs.Car je compte bien le réutiser à la fois dans la même source et dans plusieures autre. Et je ne veux pas à chaque fois "réinventer la roue!"

En ce qui concerne Form2, tu as raison de le souligner. Il vaut mieux l' éviter.

Merci encore.

Réponses acceptées.
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Merci PCPT,
Encore une solution acceptée.

Ps : j' ai coché toutes les réponses parce qu' elles ont toutes contribuées à
élaborer une solution.
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Voilà, je vous expose ma synthèse.


Je crée mon UserControl
J' insére un Maximum de Labels indexés qui serveront d' items.
La caption de ceux qui constituront mon "Menu" serait indiquée.
Pour les autres, une chaine vides.


Mon UserControl aurait une Methode qui retourne l' index
du label sur lequel se produit le Click.


Dans mon programme , je récupère cet index et je défini l' action à
entreprendre selon sa valeur


Exemple :
X=MonUserControl.SelectedLabel
Select case X
..........
..........
..........
EndSelect


La hauteur Maximale du UserControl serait limitée par (le top du dernier
label dont la caption est différente de "") + (sa hauteur)+(quelques Twips).


Je ne sais pas ce que vous en pensez, mais moi je fonce ...
Si vous avez quelques choses à me suggerer dans ce sens
ça serait bien...


Souhaitez-moi bonne chance.

chaibat
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
Bonne chance ^^

Julien.
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Je prend.
Je savais que je pouvais compter sur vous
Messages postés
28
Date d'inscription
mardi 7 mars 2006
Statut
Membre
Dernière intervention
22 janvier 2007

Salut j'a iune petite question,
comment as tu fait pour que ton controle puisse lorsqu'il se deroule sortir de son panel pere ???

tservolle