使用String VB.NET引用表单上的Button

时间:2013-06-15 00:55:42

标签: vb.net

在我的程序(VB.NET)中,我试图创建一个看起来像这样的循环:

Dim NumberOfRows As Integer = IPOSDBDataSet.Meals.Rows.Count
Dim IntegerCount As Integer = 1
Do Until IntegerCount = NumberOfRows
    Button("ButtonMeal" & IntegerCount).Text = "Hello"
    'AND MORE STUFF
Loop

我知道Button行不起作用,但这是描述我希望它如何工作的最佳方式。我正在使用我的程序数据库。我想要一个循环来改变(例如)按钮的文本属性。

在第一个循环中,它会将“ButtonMeal1”文本更改为“Hello”。然后,如果表上有更多行,它将循环并将“ButtonMeal2”更改为“Hello”,依此类推。显然,我不想把所有内容都改成你好,但我试图保持我的代码简单化以避免混淆。

如果这没有意义,请告诉我。我一直在寻找数小时,但找不到答案!非常感谢任何帮助!

3 个答案:

答案 0 :(得分:2)

您可以使用Find Method of the Control Collection,此功能将搜索Control Collection的子项,只需将您的按钮托管在Panel或其他容器Control上。

DirectCast(Controls.Find("ButtonMeal" & IntegerCount, True)(0), Button).Text = "Hello"

答案 1 :(得分:1)

试试这样..

Dim btn as Button
Do Until IntegerCount = NumberOfRows
    btn=DirectCast(Controls("ButtonMeal" & IntegerCount.ToString),Button)
    btn.Text = "Hello"
    'AND MORE STUFF
Loop

答案 2 :(得分:0)

您可以在controlCollection中引用控件的名称,如:

Me.Controls("ButtonMeal" & IntergerCount.ToString)

如果他们属于另一个容器:

Panel1.Controls("ButtonMeal" & IntergerCount.ToString) 

如果你的控件被命名为ButtonMeal1等......

如果使用强类型数据集,则可以在设计时绑定到控件 - 可能是更好的设计。