wpf中的checkbox怎么互斥?

连着写了三个checkbox只能选其一,应该怎么设置... 连着写了三个checkbox只能选其一,应该怎么设置 展开
 我来答
你是谁LCqTt
推荐于2018-03-19 · TA获得超过602个赞
知道小有建树答主
回答量:604
采纳率:0%
帮助的人:858万
展开全部
checkbox没办法只通过设置来实现你要的功能,不过你可以通过代码实现:
xaml:
<StackPanel>
<CheckBox Name="chk" Click="chk_Click"/>
<CheckBox Name="chk2" Click="chk_Click"/>
<CheckBox Name="chk3" Click="chk_Click"/>
</StackPanel>
后台代码:
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来实现分组的目的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友707358e
2018-11-03
知道答主
回答量:19
采纳率:0%
帮助的人:3.7万
展开全部
chk_1.Enabled = !chk_2.Checked;
两个checkbox时,我是这么写的,供参考
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ahao1001
推荐于2016-06-15 · TA获得超过2269个赞
知道小有建树答主
回答量:396
采纳率:0%
帮助的人:366万
展开全部
三个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的情况下还是很好用的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b9f6e14
2011-02-12 · 超过67用户采纳过TA的回答
知道小有建树答主
回答量:437
采纳率:0%
帮助的人:182万
展开全部
我不知道你要做什么 没搞清楚,先关注
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式