动态构建按钮

时间:2012-02-01 03:56:24

标签: .net vb.net button

我正在使用VB.Net。 我有一个13个按钮的列表。这些按钮的名称是通过3个不同变量的组合构建的。

我需要禁用所有这些按钮。我不想遍历每个按钮来禁用它们。我想在循环中动态调用这些按钮,然后禁用它们。像这样的东西;

For Count = 1 To 13
    PeriodRoomID = ("R" & ds.Tables("sqlSpecRoomRequest").Rows(i).Item(3) & Count)
    PeriodRoomID.Enabled = False
    PeriodRoomID.Backcolor = Color.Gray
Next

问题是,一旦创建了变量PeriodRoomID,我无法将其作为按钮来处理,因为;

  • 这意味着有两个同名的按钮。
  • PeriodRoomID是一个字符串,因此无法启用,因为这没有任何意义。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

您可以尝试Controls.Find方法。

dim cntrl() as Control
For Count = 1 To 13 
    PeriodRoomID = ("R" & ds.Tables("sqlSpecRoomRequest").Rows(i).Item(3) & Count) 
    cntrl = Me.Controls.Find(PeriodRoomID,True)
    cntrl(0).Enabled = False
    cntrl(0).Backcolor = Color.Gray
Next