Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 在运行时将自定义属性添加到表单中的对象(即Textbox)_Vb.net_Visual Studio 2010 - Fatal编程技术网

Vb.net 在运行时将自定义属性添加到表单中的对象(即Textbox)

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

是否有一种简单的方法可以在运行时在表单中添加自定义属性(即TextBox1)?我的意思是避免创建和使用自定义控件,只是将自定义属性添加到标准控件中

…这样就可以像这样设置和访问它

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中的一列)。我只是想知道,是否有一种更简单的方法,不需要定义额外的对象(并且有大量的对象是通过这种方法生成的)。我认为这应该是一个不同的问题。这是一个太大的话题,不可能只讨论这个问题。您需要很好地描述您正在做什么以及为什么需要此阵列(即,如何以及为什么访问它),我们可能会为您提供更好的设计想法。