如果启用了另一个复选框,如何禁用该复选框?

时间:2019-03-22 06:11:58

标签: c# html checkbox webforms

我的网页上有两个复选框,我想要的是:

  • 最初两个复选框均未选中。
  • 如果选中了Checkbox1,则应该禁用Checkbox2。
  • 如果再次取消选中Checkbox2,则应该再次启用Checkbox2。
  • 反之亦然。

请帮助我修改代码。

这是我的代码:

protected void CheckBox1_CheckedChanged1(object sender, EventArgs e)
{
   //this.CheckBox1.CheckedChanged += new System.EventHandler(CheckBox1_CheckedChanged1);
    if (CheckBox1.Checked)
        CheckBox2.Enabled = false;
}

protected void CheckBox2_CheckedChanged2(object sender, EventArgs e)
{
    if (CheckBox2.Checked)
        CheckBox1.Enabled = false;
}

HTML

<asp:CheckBox ID="CheckBox1" runat="server" Height="33px" OnCheckedChanged="CheckBox1_CheckedChanged1" Font-Bold="True" style="margin-left: 33px" Text="Remove Blank Lines" TextAlign="Left" Width="162px" />


<asp:CheckBox ID="CheckBox2" runat="server" Font-Bold="True" Height="33px" OnCheckedChanged="CheckBox2_CheckedChanged2" style="margin-left: 28px" Text="Add Prefix/ Suffix to Blank Lines" TextAlign="Left" Width="259px" />

2 个答案:

答案 0 :(得分:0)

只需使用:

CheckBox2.Enabled = !CheckBox1.Checked;

答案 1 :(得分:0)

此答案用于澄清新贡献者

AutoPostBack属性添加到每个复选框控件

<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack ="True" OnCheckedChanged="CheckBox_CheckedChanged" Height="33px"  Font-Bold="True" style="margin-left: 33px"  Text="Remove Blank Lines" TextAlign="Left" Width="162px" />


<asp:CheckBox ID="CheckBox2" runat="server" AutoPostBack ="True" OnCheckedChanged="CheckBox_CheckedChanged" Font-Bold="True" Height="33px"  style="margin-left: 28px"   Text="Add Prefix/ Suffix to Blank Lines" TextAlign="Left" Width="259px" />

然后隐藏代码

创建一个事件CheckBox_CheckedChanged,然后将每个checkbox指向该事件:

protected void CheckBox_CheckedChanged(object sender, EventArgs e)
  {
     CheckBox1.Enabled = !CheckBox2.Checked;
     CheckBox2.Enabled = !CheckBox1.Checked;
  }