反正有将多个按钮另存为列表吗?

时间:2019-04-29 13:40:36

标签: vb.net winforms

我正在做小型餐厅系统项目。我在餐厅的桌子上有16个按钮。当某些事件触发(加载表单)时,我想更改它们的颜色或禁用它们中的任何一个。

我将按钮名称保存为TableX_ButtonY

格式

我使用了for循环来更改其边框颜色,如下所示:

CType(Me.Controls.Find(String.Format("Table{0}Button{1}", i, x), True)(0), Button).FlatAppearance.BorderColor = Color.Blue

如果我可以将这些按钮保存为列表,那就太好了,这样我可以更轻松地对其进行管理。

我将其标签命名为1到16,但我不知道如何正确使用它们。因为触发器不是基于按钮单击,而是基于Load Form事件。

2 个答案:

答案 0 :(得分:2)

按钮已经在集合中,将它们添加到通用集合中有点多余。在此示例中,组控件集合中有2个按钮,该按钮很可能是任何适用的容器。

    Dim ReservedTables() As Integer = {5, 10, 15, 20}

    For Each Btn As Button In GroupBox1.Controls.OfType(Of Button)
        If ReservedTables.Contains(CType(Btn.Tag, Integer)) Then
            Btn.Enabled = False
        End If
    Next

答案 1 :(得分:1)

 Dim TableList As New List(Of Button) 

 TableList.Add(TableX_ButtonY)


 For Each Table As Button in TableList
     'do stuff
 next

如果使用设计器生成了按钮,则可以使用问题中描述的方法将其全部添加到列表中