【问题标题】:Second checkbox depends from another checkbox第二个复选框取决于另一个复选框
【发布时间】:2018-04-16 20:17:14
【问题描述】:

我想让第二个复选框不可见,而第一个复选框未“选中”。在其他情况下,我想检查我的第一个复选框,第二个应该是可点击的。我该怎么做?

我的例子不起作用:

if (FirstCheckBox.Checked == true)
{
    SecondCheckBox.Visible = true;
}
else if (FirstCheckBox.Checked == false)
{
    SecondCheckBox.Visible = false;
}

【问题讨论】:

  • 你能显示更多代码吗?这段代码在哪里运行?
  • 你能分享更多细节你是怎么做的,我们可以帮助它不清楚
  • 您是否希望此更改在您选中复选框后立即显示,我建议您使用一些 javascript
  • @AdeoluwaSimeon 这是一个关于 C# 而不是 javascript 的问题。

标签: c# winforms checkbox


【解决方案1】:

您应该使用 CheckedChanged 事件。例如:

public Form1()
{
    InitializeComponent();
    checkBox1.CheckedChanged += CheckBox1_CheckedChanged;
    checkBox2.Enabled = false;
}

//When happens some change in a checkBox1
private void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
    if (checkBox1.Checked)
        checkBox2.Enabled = true;
    else
        checkBox2.Enabled = false;
}

同样使用 lambda 表达式:

public Form1()
{
    InitializeComponent();
    checkBox2.Enabled = false;
    checkBox1.CheckedChanged += (s, e) => checkBox2.Enabled = checkBox1.Checked;
}

【讨论】: