如何用循环替换许多类似的代码块?

时间:2016-10-03 04:56:50

标签: vb.net

你能帮助我循环一下这个吗?我开始学习vb.net语言

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If Button1.BackColor = Color.Red Then
        Button1.BackColor = Color.Pink
    End If
    If Button2.BackColor = Color.Red Then
        Button2.BackColor = Color.Pink
    End If
    If Button3.BackColor = Color.Red Then
        Button3.BackColor = Color.Pink
    End If
End Sub

1 个答案:

答案 0 :(得分:0)

我不知道为什么我会回答这个问题,因为这个问题确实不是问题。它不清楚,格式化是完全错误的。然而,因为我在过去的10分钟内写了类似的东西,我心情相当好,我想帮忙......

你可以用两种方式(可能有其他方式)使用Foreach循环,它遍历一个对象集合。

第一个循环遍历表单上按钮的匿名数组。然后是相同的条件。很简单,如果添加另一个按钮,则将其添加到数组的末尾。

    For each btn As Button In {Button1, Button2, Button3, Button4}
        If btn.BackColor = Color.Red Then
            btn.BackColor = Color.Pink
        End If
    Next

下一个方法几乎完全相同,但您不必手动将按钮添加到数组中。它假定您要对表单上的每个按钮执行逻辑。它采用当前表单上的所有控件(按钮,文本框等),如果它是一个按钮,则将其转换为按钮对象,然后执行相同的条件。

    For each btn As Control In Me.Controls
        If btn.GetType() = GetType(Button) then
            Dim myButton As Button = CType(btn, Button)
            If myButton.BackColor = Color.Red Then
                myButton.BackColor = Color.Pink
            End If
        End If
    Next

请查看How to ask