我试图在 VB.net 中为购物系统编写一个程序。它将读取数据库并填充表单上的项目。该应用程序在可滚动面板内的标签中显示产品名称等信息。我在运行时创建对象并分配诸如文本之类的值。我正在为代码使用循环。
如果我使用的是 vb 6,我将有一个控制数组,并使用索引和我的计数器来显示数据。由于我在 vb.net 中这样做,我无法做到这一点.. 任何解决方案?
我试图在 VB.net 中为购物系统编写一个程序。它将读取数据库并填充表单上的项目。该应用程序在可滚动面板内的标签中显示产品名称等信息。我在运行时创建对象并分配诸如文本之类的值。我正在为代码使用循环。
如果我使用的是 vb 6,我将有一个控制数组,并使用索引和我的计数器来显示数据。由于我在 vb.net 中这样做,我无法做到这一点.. 任何解决方案?
VB.NET 不支持控件数组,这与 VB6 的意义相同。不过,你可以做类似的事情。例如,如果你想用相同的方法处理来自多个控件的事件,你可以这样做:
Private Sub MyClickHandler(sender As Object, e As EventArgs) Handles _
Button1.Click, _
Button2.Click, _
Button3.Click
Dim buttonThatWasClicked As Button = CType(sender, Button)
' Do something...
End Sub
如果你想创建一个可以循环的控件数组,你可以这样做,如下所示:
Dim myTextBoxes() As TextBox = New TextBox() { TextBox1, TextBox2, TextBox3 }
For i As Integer = 0 to myTextBoxes.Length - 1
myTextBoxes(i).Text = ...
Next
或者,如果您一致地命名控件,则可以在表单Controls
集合中按名称找到它们。例如,如果您有三个名为TextBox1
、TextBox2
和的文本框TextBox3
,您可以像这样循环它们:
For i As Integer = 1 to 3
Dim t As TextBox = CType(Me.Controls("TextBox" & i.ToString()), TextBox)
t.Text = ...
Next
VB.NET 本身没有控件数组。
但是,您可以创建一个控件数组并将控件分配给数组的每个元素,尽管您也可以使用List(Of Control)
.
这将允许您遍历集合。
VB.NET 中没有 Control 数组。但是您可以遍历Panel.Controls集合。所有控件都在该集合中(如果它们都在同一个面板中)。
For i = 0 To Panel1.Controls.Count - 1
Dim control = Panel1.Controls(i)
'Do something with control..
Next
首先,您为什么不能为此使用网格?- 这将是显而易见的解决方案(因为它在 VB6 中也是如此)。
预计到达时间。. .但如果您必须,此代码段将添加一组标签到您的表单。您将需要对此进行修改,例如将 for next 循环替换为 for each r as mydataset.mytabledatarow in mydataset.mydatable 等
For i = 1 To 10
Dim l As New Label
l.Location = New System.Drawing.Point With {.x = 10, .y = i * 30}
Me.Controls.Add(l)
l.Text = "test " & i.ToString
Next