Problema com propriedades relacionadas Definir em designer na primeira vez
-
08-07-2019 - |
Pergunta
I Desenvolver um criador de formulários, também desenvolvem algum controle personalizado que herda do controle padrão como botão.
Além disso, eu tenho alguma propriedade que relacionados, por exemplo usuário deve selecionar departamento primeiro lugar, e em seguida, selecione pessoa. e depois selecione usuário pessoa, eu definir o texto do meu controle personalizado (que herdam de botão, neste caso).
. Nota: usuário pode alterar propriedade de texto
Todos os coisa funcionar corretamente, mas quando eu carregar a partir DB ou arraste e solte o controle de designer de formulário, Texto de controlname # set,
Depois de propriedade de substituição de texto e depurá-lo, eu vejo direito conjunto de texto, mas depois o meu texto, texto set designer com controlname # que esta errado.
Como resolver esse proplem?
Obrigado antecipadamente
Hamid
Solução
Existem atributos que você pode aplicar às suas propriedades, tais como ReadOnly
que vai parar o designer de definir sua propriedade também.
Eu não posso encontrar o link no momento, mas há também um método de dizer ao designer de formulários que devem definir propriedades em uma determinada ordem.
Editar:
Ok, não exatamente o que eu lembrava como, mas eu acho que algo como o ISupportInitialize interface.
Algo como:
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
Desta forma, toda a sua verificação pode ser desativado até que seu objeto é totalmente inicializado.
Outras dicas
Você pode verificar no seu setter Text
anulado se é estar pronto para controlName#
e, se for, não fazer nada.