我发现了propertygrid,它可能很方便编辑或只是在我的程序中显示一些自定义设置数据。但我需要一些属性属性可以改变 喜欢'readonly'属性。
这是我到目前为止所做的:
Const myPersonCat As String = "MyPerson"
Const myDesc1 As String = "Firstname is one element"
<CategoryAttribute(myPersonCat), _
DescriptionAttribute(myDesc1), _
[ReadOnly](myBool)> _
Public Property firstname() As String
Get
Return _firstname
End Get
Set(ByVal value As String)
If Not _firstname = value Then save_param("firstname", value, myPersonCat, myDesc1)
_firstname = value
End Set
End Property
Const mydesc2 As String = "but Lastname is second"
<CategoryAttribute(myPersonCat), _
DescriptionAttribute(mydesc2), _
[ReadOnly](myBool)> _
Public Property lastname() As String
Get
Return _lastname
End Get
Set(ByVal value As String)
If Not _lastname = value Then save_param("lastname", value, myPersonCat, myDesc2)
_lastname = value
End Set
End Property
Save_param是对函数的调用,它将基本数据的属性保存在数据库中 所有这些工作都很好。
但现在是一个问题......
这里有一些,不是太复杂的方法来设置'myBool'为readonly属性与变量而不是常量,我可以阻止更改一些属于程序中的情况的属性。
也许对于整个类别或单个属性?
或者也许存在其他一些获得类似功能的方法?
答案 0 :(得分:0)
不,无法更改属性的值。作为替代方案,您可以在属性集中编写代码,以便在用户尝试将值设置为只读时设置该值时抛出异常。