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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top