Problème avec la propriété liée au jeu dans le concepteur pour la première fois
-
08-07-2019 - |
Question
Je développe un concepteur de formulaire, ainsi que certains contrôles personnalisés hérités du contrôle standard, tels que le bouton.
De plus, certaines propriétés sont liées, par exemple, l'utilisateur doit d'abord sélectionner un département, puis une personne. et après que l'utilisateur sélectionne la personne, je règle le texte de mon contrôle personnalisé (qui hérite du bouton dans ce cas).
Remarque: l'utilisateur peut modifier la propriété Text.
Tout fonctionne correctement, mais lorsque je charge à partir d'une base de données ou d'un contrôle-glisser pour le concepteur de formulaire, le texte de controlName # set,
Après avoir remplacé la propriété Text et l'avoir débogué, je vois que le texte est défini correctement, mais après avoir défini mon texte, le concepteur a défini le texte avec controlName # this this false.
Comment résoudre ce proplem?
Merci d'avance
Hamid
La solution
Il existe des attributs que vous pouvez appliquer à vos propriétés, tels que ReadOnly
, qui empêcheront le concepteur de définir également votre propriété.
Je ne trouve pas le lien pour le moment, mais il existe également une méthode permettant au concepteur de formulaires de définir les propriétés dans un certain ordre.
Modifier:
Ok, pas vraiment ce dont je me souvenais, mais je pense quelque chose comme le ISupportInitialize , interface.
Quelque chose comme:
Public Class Test
Implements ISupportInitalise
private _numberOne as integer
private _numberTwo as integer
private _initalised as boolean
Public Property NumberOne() as Integer
Get
return _numberOne
End Get
Set(value as Integer)
if _initalised then
'perform checks here'
end if
_numberOne = value
End Set
End Property
Public Property NumberTwo() as Integer
Get
return _numberTwo
End Get
Set(value as IntegeR)
if _initalised then
'perform checks here'
end if
_numberTwo = value
End Set
End Property
Public Sub BeginInit Implements ISupportInitalise.BeginInit
_initalised = false
End Sub
Public Sub EndInit Implements ISupportInitalise.EndInit
_initalised = true
'perform all checks here'
End Sub
End Class
Ainsi, toute votre vérification peut être désactivée jusqu'à l'initialisation complète de votre objet.
Autres conseils
Vous pouvez vérifier dans le paramètre Text
de votre remplaçant s'il est défini sur nomContrôle #
et, le cas échéant, ne rien faire.