永发信息网

wpf中的checkbox怎么互斥?

答案:3  悬赏:50  手机版
解决时间 2021-11-28 11:57
  • 提问者网友:酱爆肉
  • 2021-11-28 08:49
wpf中的checkbox怎么互斥?
最佳答案
  • 五星知识达人网友:duile
  • 2021-11-28 09:32
checkbox没办法只通过设置来实现你要的功能,不过你可以通过代码实现:
xaml:





后台代码:
private void chk_Click(object sender, RoutedEventArgs e)
{
var checkBoxes = new[] { chk, chk2, chk3};
var current = (CheckBox)sender;

foreach (var checkBox in checkBoxes)
{
if (checkBox != current)
{
checkBox.IsChecked = !current.IsChecked;
}
}
}

当然, 你还可以看RadioButton能不能达到你的要求,因为RadioButton可以通过设置GroupName来实现分组的目的。
全部回答
  • 1楼网友:傲气稳了全场
  • 2021-11-28 11:11
三个checkbox的checkedchanged事件分别与以下代码绑定
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
checkBox2.Checked = false;
checkBox3.Checked = false;
}
}

private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
if (checkBox2.Checked)
{
checkBox1.Checked = false;
checkBox3.Checked = false;
}
}

private void checkBox3_CheckedChanged(object sender, EventArgs e)
{
if (checkBox3.Checked)
{
checkBox1.Checked = false;
checkBox2.Checked = false;
}
}

如果checkbox数量多就要考虑用循环,遍历。现在这个方法在只有三个checkbox的情况下还是很好用的。
  • 2楼网友:孤老序
  • 2021-11-28 10:56
我不知道你要做什么 没搞清楚,先关注
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯