.net - 动态构建按钮

标签 .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 是一个字符串,因此无法启用,因为这毫无意义。

我该如何解决这个问题?

最佳答案

你可以试试 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 

关于.net - 动态构建按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9090538/

相关文章:

css - 如何访问文件上传按钮的属性?

c# - 了解何时处于设计模式

c# - 如何从 Linq.Table<TEntity> 获取 ColumnAttributes?

.net - ADFS 2.0 Web 应用程序注销

c# - Visual Studio Intellisense 不显示事件

c# - 接口(interface)方法 使用 VB.NET 的 ByRef 实现和传递

c# - 将字符串中的时间转换为 UTC 时间?

javascript - HTML5 jQuery .animate()({scrollTop : }); not working as intended

c# - 面板中按钮的位置不在表单中

button_to 的 HTML 内容