复选框的CheckedChanged在winform上没有触发

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 事件会被触发。


@danbystrom,是的,它被称为。 - Benny
@Rohit,你的链接有什么意义? - Benny
1个回答

7
如果您的选中状态最初为false,那么再次将其设置为false不会触发CheckedChanged事件。
这是因为选中状态实际上没有被更改
当尝试设置CheckBox1.Checked属性时,这是内部代码使用的内容。
public void set_Checked(bool value)
{
    if (value != this.Checked)
    {
        this.CheckState = value ? CheckState.Checked : CheckState.Unchecked;
    }
}

因为选中状态实际上并没有被更改。你让它听起来像是一个错误。 - Cody Gray
@CodyGray 是的,我已经将你的观察添加到答案中了。 - Steve

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接