Vb.net 在运行时将自定义属性添加到表单中的对象(即Textbox)
是否有一种简单的方法可以在运行时在表单中添加自定义属性(即TextBox1)?我的意思是避免创建和使用自定义控件,只是将自定义属性添加到标准控件中 …这样就可以像这样设置和访问它Vb.net 在运行时将自定义属性添加到表单中的对象(即Textbox),vb.net,visual-studio-2010,Vb.net,Visual Studio 2010,是否有一种简单的方法可以在运行时在表单中添加自定义属性(即TextBox1)?我的意思是避免创建和使用自定义控件,只是将自定义属性添加到标准控件中 …这样就可以像这样设置和访问它 Me.TextBox1.MyCustomProperty = "my string or value" 让我们以与处理结构类似的方式说: Public Structure uAccess Dim isEditable As Boolean Dim isKoopPrice As Boolean
Me.TextBox1.MyCustomProperty = "my string or value"
让我们以与处理结构类似的方式说:
Public Structure uAccess
Dim isEditable As Boolean
Dim isKoopPrice As Boolean
Dim isUserEditable As Boolean
Dim isManagerEditable As Boolean
End Structure
Dim Col1Access As uAccess
With Col1Access
.isEditable = False
.isManagerEditable = False
.isSalePrice = False
.isUserEditable = False
End With
致以最良好的祝愿
Libor将其添加到
文本框
的.Tag
属性中,因为它是对象
您可以在其中存储任何内容
Dim col1Access As New uAccess
With Col1Access
.isEditable = False
.isManagerEditable = False
.isSalePrice = False
.isUserEditable = False
End With
Textbox1.Tag = col1Access ' know as boxing
将对象取回:
Dim ua As uAccess = TryCast(Textbox1.Tag, uAccess) ' unboxing
If ua IsNot Nothing Then
'use the ua object now
End If
您不需要向该结构添加字段,只需将字段设置好,关键是,您可以包含另一行(属性),如“Dim MyLine as String”,然后使用“Col1Access.Myline=‘我的文本’……但你不能在运行时这样做,这就是问题所在。由于您要添加的属性不能改变TB的行为,因此它实际上不是一个属性,而是某种类型的变量。嗯,我已经在使用标记存储数据库引用,但这个答案值得投票。我可能会重新构造数据以支持装箱。为什么不将您需要的所有数据存储在一个对象中-将db内容添加到其中?这就是我目前所做的,我有一个带有Dims的结构数组。所以我调用MyStructureArray(I).MyProperty1(每个数组对应于datagridview中的一列)。我只是想知道,是否有一种更简单的方法,不需要定义额外的对象(并且有大量的对象是通过这种方法生成的)。我认为这应该是一个不同的问题。这是一个太大的话题,不可能只讨论这个问题。您需要很好地描述您正在做什么以及为什么需要此阵列(即,如何以及为什么访问它),我们可能会为您提供更好的设计想法。