OCX UserControl propriété affichée ou masquée VB6

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 17 sept. 2005 à 04:23
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 17 sept. 2005 à 17:34
bonsoir,

voilà, pour le test, je crée un nouveau usercontrol dont voici le code "bidon"
[VB6]


'déclarations
Public Enum eOK
eOUAI
eNAN
End Enum
Private mCtrl As eOK
'
'
'get let
Public Property Get Ctrl() As eOK
Ctrl = mCtrl
End Property
Public Property Let Ctrl(new_mCtrl As eOK)
If mCtrl <> new_mCtrl Then
mCtrl = new_mCtrl
PropertyChanged "Ctrl"
End If
End Property
'
'
'propbag
Private Sub UserControl_InitProperties()
Me.Ctrl = eOUAI
End Sub
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
With PropBag
Me.Ctrl = .ReadProperty("Ctrl", eOUAI)
End With
End Sub
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
With PropBag
.WriteProperty "Ctrl", Me.Ctrl, eOUAI
End With
End Sub


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>

je voudrais simplement que si ce contrôle est posé au moins 2 fois sur la Form, la propriété Ctrl ne soit pas affichée dans la liste des propriétés s'ils sont sélectionnés à plusieurs...

en comparaison, comme un TextBox, la zone Text disparaît en multi-sélection.

j'ai regardé dans Outils>Attributs de procédure, rien à faire...

help?
merci d'avance
PCPT

7 réponses

Utilisateur anonyme
17 sept. 2005 à 12:29
Bonjour,



Je n’ai pas vb6 sous la main. Mais en utilisant la propriété parent de
ton usercontrol, on peut accéder à la liste des contrôles sur le
conteneur de cet l'usercontrol, puis boucler sur tous les contrôle de
ce conteneur est vérifier si l'un d'eux est du même type que
l'usercontrol chercher alors on retire la propriété sinon on la laisse.

Bon, c'est juste une idée mais je ne peux malheureusement pas l'appliquer comme je n'ai pas vb6.



ChRB



Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 sept. 2005 à 12:42
salut,
je comprend bien l'idée, je vois bien également comment boucler pour trouver le type identique sur le Parent, mais ce n'est pas pour autant que mon Public Property Let
peut devenir un Private Property Let
....

ai-je mal compris quelquechose?
PCPT
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 sept. 2005 à 15:50
bon, je viens aux nouvelles :

je modifie mon Let, et j'ajoute une fonction :


Public Property Let Ctrl(new_mCtrl As eOK)
If mCtrl <> new_mCtrl Then
If CountMyType Then
mCtrl = new_mCtrl: PropertyChanged "Ctrl"
Else
MsgBox "TROP DE CONTRÔLES !!!", vbCritical
End If
End If
End Property
'
'
'
Private Function CountMyType() As Boolean
Dim Ctrls As Object, Cpt As Long
Cpt = 0
For Each Ctrls In UserControl.Parent
If (TypeOf Ctrls Is UserControl1) Then
Cpt = Cpt + 1
If Cpt > 1 Then Exit For
End If
Next Ctrls If Cpt > 1 Then CountMyType False Else CountMyType True
End Function


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>

mon problème reste le même.
je peux savoir si mon contrôle est ou non en nombre voulu, mais je ne peux pas pour autant ne pas afficher le champs propriété :-\

le principe serait plus ou moins le même pour, par exemple, pour empêcher complètement la pose d'un contrôle
(aucune idée si c'est faisable)

HELP Please.......

PCPT
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 sept. 2005 à 16:27
Tu ne peux pas (à ma connaissance) masquer une propriété en éxécution selon une condition.



VB masque automatiquement les propriétés qui ne sont pas valable pour
tout les contrôles sélectionnés (par exemple, si tu sélectionne un
textbox et un label, alors VB masque les propriétés Caption et Text vu
que les 2 contrôles ne possède pas tout les 2 ses propriétés).

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0

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

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 sept. 2005 à 16:36
salut,
je met 2 TextBox et 2 Label

je sélectionne les 2 Label, la propriété Caption est vide, parce que différentes...
pour les TextBox, la propriété Text disparaît totalement de la liste des propriétés

çà doit donc être faisable, non?

(en mode conception...)

je m'en sors pas, çà m'énerve

PCPT
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 sept. 2005 à 17:14
Ben tu peux toujours te servir d'une page de propriétés, et là tu as
bien plus de possibilité de personnalisation, mais là, vu que c'est VB
qui le gère directement, je ne sais vraiment pas comment on peut
masquer conditionnellement une propriété !



Voir dans la MSDN s'ils en parlent...

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 sept. 2005 à 17:34
re,
la page de propriété, pour mon exemple concret (puisqu'allégé pour ce topic) , ne convient pas du tout.
je suis sur la MSDN depuis plus de 3/4h, peu satisfaisant pour le moment.....

merci
PCPT
0
Rejoignez-nous