可以在列表项上添加某种标识吗?

时间:2013-08-27 15:19:56

标签: vb.net winforms list

我只是好奇是否可以收集数据列表并将其放入列表或数组中,并使用列表中每个项目上的某个变量(如控件上的标记属性)轻松将其拉出,而不是使用指数。一个例子是,如果我在表单上有很多控件,并希望使用列表填充值,但不必交叉检查很多不同的指标(将花费很多时间)我可以只是将标签分配给某些'list like'列表项的变量。

这可能吗?

3 个答案:

答案 0 :(得分:1)

我会使用Dictionary对象,因此您可以使用密钥轻松引用您的数据。

答案 1 :(得分:1)

您可以使用LINQ:

Dim myTagControls = From ctrl In Me.Controls.Cast(Of Control)()
                    Where "your-tag".Equals(ctrl.Tag)

For Each ctrl In myTagControls
    Console.WriteLine("Tag:{0} Name:{1}", ctrl.Tag, ctrl.Name)
Next

答案 2 :(得分:1)

.NET中的列表(例如List(Of T)类)仅支持每个项目存储一个对象。但是,它们的美妙之处在于,您可以存储您想要的任何类型的对象。如果需要使用数据存储元数据,只需创建一个包含每个项目的所有数据的新类。例如:

Public Class MyControlData
    Public Property LabelText As String
    Public Property Value As String
End Class

然后您可以将项目添加到列表中,如下所示:

Dim dataList As New List(Of MyControlData)()
Dim item As New MyControlData()
item.LabelText = "Name"
item.Value = "Bob"
dataList.Add(item)

您可以从列表中读取数据:

For Each i As MyControlData in dataList
    Label1.Text = i.LabelText
    TextBox1.Text = i.Value
Next