wpf中的checkbox怎么互斥?
发布网友
发布时间:2023-11-24 00:28
我来回答
共4个回答
热心网友
时间:2024-12-01 11:32
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来实现分组的目的。
热心网友
时间:2024-12-01 11:32
chk_1.Enabled = !chk_2.Checked;
两个checkbox时,我是这么写的,供参考
热心网友
时间:2024-12-01 11:33
三个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的情况下还是很好用的。
热心网友
时间:2024-12-01 11:33
我不知道你要做什么 没搞清楚,先关注