第一次在设计器中设置相关属性的问题
-
08-07-2019 - |
题
我开发了一个表单设计器,还开发了一些继承自标准控件(如按钮)的自定义控件。
另外,我有一些相关的属性,例如用户必须首先选择部门,然后选择人员。在用户选择人员后,我设置自定义控件的文本(在本例中继承自按钮)。
笔记:用户可以更改文本属性。
一切正常,但是当我从数据库加载或将控件拖放到表单设计器时,controlName# 设置的文本,
在覆盖 Text 属性并调试它之后,我看到文本设置正确,但是在设置我的文本后,设计器使用 controlName# 设置文本,这是错误的。
如何解决这个问题?
提前致谢
哈米德
解决方案
您可以将一些属性应用于您的属性,例如 ReadOnly
这也会阻止设计师设置你的财产。
我目前找不到链接,但还有一种方法可以告诉表单设计器应该按特定顺序设置属性。
编辑:
好吧,不太像我记忆中的样子,但我认为类似 ISupport初始化 界面。
就像是:
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
这样,您的所有检查都可以被禁用,直到您的对象完全初始化为止。
其他提示
你可以检查你的覆盖 Text
setter 是否被设置为 controlName#
如果是,则什么都不做。
不隶属于 StackOverflow