如何:响应 Windows 窗体 CheckBox 的单击

每当用户单击 Windows 窗体 CheckBox 控件时,都会发生 Click 事件。 可以根据复选框的状态,将应用程序编程为执行某些操作。

响应 CheckBox 单击

  1. Click 事件处理程序中,使用 Checked 属性来确定控件的状态,并执行任何必要的操作。

    Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.Click
       ' The CheckBox control's Text property is changed each time the
       ' control is clicked, indicating a checked or unchecked state.
       If CheckBox1.Checked = True Then
          CheckBox1.Text = "Checked"
       Else
          CheckBox1.Text = "Unchecked"
       End If
    End Sub
    
    private void checkBox1_Click(object sender, System.EventArgs e)
    {
       // The CheckBox control's Text property is changed each time the
       // control is clicked, indicating a checked or unchecked state.
       if (checkBox1.Checked)
       {
          checkBox1.Text = "Checked";
       }
       else
       {
          checkBox1.Text = "Unchecked";
       }
    }
    
    private:
       void checkBox1_CheckedChanged(System::Object ^ sender,
          System::EventArgs ^ e)
       {
          if (checkBox1->Checked)
          {
             checkBox1->Text = "Checked";
          }
          else
          {
             checkBox1->Text = "Unchecked";
          }
       }
    

    注释

    如果用户尝试双击 CheckBox 控件,将单独处理每次单击;也就是说,CheckBox 控件不支持双击事件。

    注释

    AutoCheck 属性为 true(默认值)时,单击 CheckBox 时会自动选择或清除它。 否则,必须在发生 Checked 事件时手动设置 Click 属性。

    还可以使用 CheckBox 控件来确定操作过程。

确定单击复选框时的操作过程

  1. 使用 case 语句查询 CheckState 属性的值以确定操作过程。 当 ThreeState 属性设置为 true时,CheckState 属性可能会返回三个可能的值,这些值表示正在选中的框、未选中的框或显示该框的灰色外观以指示选项不可用的第三个不确定状态。

    Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.Click
       Select Case CheckBox1.CheckState
          Case CheckState.Checked
             ' Code for checked state.
          Case CheckState.Unchecked
             ' Code for unchecked state.
          Case CheckState.Indeterminate
             ' Code for indeterminate state.
       End Select
    End Sub
    
    private void checkBox1_Click(object sender, System.EventArgs e)
    {
       switch(checkBox1.CheckState)
       {
          case CheckState.Checked:
             // Code for checked state.
             break;
          case CheckState.Unchecked:
             // Code for unchecked state.
             break;
          case CheckState.Indeterminate:
             // Code for indeterminate state.
             break;
       }
    }
    
    private:
       void checkBox1_CheckedChanged(System::Object ^ sender,
          System::EventArgs ^ e)
       {
          switch(checkBox1->CheckState) {
             case CheckState::Checked:
                // Code for checked state.
                break;
             case CheckState::Unchecked:
                // Code for unchecked state.
                break;
             case CheckState::Indeterminate:
                // Code for indeterminate state.
                break;
          }
       }
    

    注释

    ThreeState 属性设置为 true时,Checked 属性返回 trueCheckedIndeterminate

另请参阅