0

欢迎,我怎样才能将多个动作作为变量?

喜欢

checkbox1.enabled = false
checkbox2.enabled = false
checkbox3.enabled = false

我会在许多对象代码中这样写

有没有办法把它们都放在变量中?

编辑:

我也可以使用潜艇,更容易。

4

2 回答 2

1

如果您使用您在问题中使用的相同命名法,这应该有效:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    For i As Integer = 1 To 10
        Dim chk() As Control = Me.Controls.Find("CheckBox" & i.ToString(), False)
        If chk(0) IsNot Nothing Then
            DirectCast(chk(0), CheckBox).Checked = Not DirectCast(chk(0), CheckBox).Checked
        End If
    Next
End Sub

当然,这只是一个切换复选框的示例。

编辑

''' <summary>
''' Returns true if all of the checkboxes are checked, false if at least one of them is unchecked.
''' </summary>
Function AllChecked() As Boolean
    For i As Integer = 1 To 10
        Dim chk() As Control = Me.Controls.Find("checkbox" & i.ToString(), False)
        If chk(0) IsNot Nothing Then
            If Not DirectCast(chk(0), CheckBox).Checked Then
                Return False 'Not all of the checkboxes are checked
            End If
        End If
    Next
    Return True 'All of the found checkboxes were checked.
End Function

祝你好运。

于 2013-01-23T17:28:47.607 回答
0
    public bool EnableChecks
    {
        set
        {
            checkbox1.Enabled = checkbox2.Enabled = checkbox3.Enabled = value;
        }
    }

然后您只需将 EnableChecks 设置为 true 或 false。这是你要求的吗?

编辑:我个人不会这样做,因为我觉得 getter 和 setter 不应该用于此。会创建一种启用/禁用它们的方法吗?

    public bool EnableChecks(bool enabled)
    {
        checkbox1.Enabled = checkbox2.Enabled = checkbox3.Enabled = enabled;
    }
于 2013-01-23T17:24:59.720 回答