4
 public Form1()
    {
        InitializeComponent();
    }

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        textBox1.Enabled = checkBox1.Checked;
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        checkBox1.Checked = false;
    }

我在加载事件处理程序中设置了检查状态,为什么在这种情况下,CheckedChanged 没有被触发?如果我单击复选框,则会触发 CheckedChanged。

4

1 回答 1

7

如果您的选中状态最初为false,则将其false再次设置为不会触发CheckedChanged事件。
发生这种情况是因为检查状态实际上并没有改变

这是尝试设置 CheckBox1.Checked属性时使用的内部代码

public void set_Checked(bool value)
{
    if (value != this.Checked)
    {
        this.CheckState = value ? CheckState.Checked : CheckState.Unchecked;
    }
}
于 2012-08-09T07:28:54.733 回答