我有许多复选框,我想将它们作为切换按钮处理。每个都完全独立于另一个,可以选中或取消选中。当用户单击复选框/按钮时,它将保持选中状态,如果用户再次单击,则复选框/按钮将返回“未选中”状态。复选框/按钮可以自行检查/取消选中吗?
我已经尝试了很长时间,也在互联网上搜索并找不到解决方案。
答案 0 :(得分:1)
选中复选框的状态,每次单击该按钮,都要进行更改。
private void toggButton_CheckedChanged(object sender, EventArgs e)
{
// everytime you click the button checkbox states will change.
if(checkBox.Checked)
{
checkBox.Checked = false;
}
else
{
checkBox.Checked = true;
}
}
答案 1 :(得分:1)
问题是复选框/按钮一如既往地“显示” 按下,即检查时它所具有的“蓝色”颜色不会改变 给人的印象是它没有被取消选中。 - user1304490
可能会设置CheckBox.ThreeState属性false帮助。
如果ThreeState属性设置为false,则CheckState属性值只能在代码中设置为System.Windows.Forms.CheckState的Indeterminate值,而不能通过用户交互设置。
答案 2 :(得分:0)
您可以为所有复选框分配一个公共事件。将此代码写入.cs文件并选择所有复选框并将此事件分配给checkedChange事件。
private void chkboxes_CheckedChanged(object sender, EventArgs e)
{
CheckBox chk = (CheckBox)sender;
if(!chk.Checked)
chk.Checked = true;
else
chk.Checked = false;
}
答案 3 :(得分:0)
参考:CheckBox.CheckState属性。
它是读写属性,因此您可以在GUI或代码中设置它。
已选中 CheckBox会显示一个复选标记。控件显得凹陷 未选中 CheckBox为空。控件显示出来 不确定 CheckBox会显示一个复选标记并显示为阴影。对照显得平淡。
在已检查的更改事件上写下这个并检查它是否切换.. 它将像开关一样工作..
label1.Text = "ThreeState: " + checkBox1.ThreeState.ToString() + "\n" + "Checked: " +
checkBox1.Checked.ToString() + "\n" + "CheckState: " + checkBox1.CheckState.ToString();
为您的问题的答案检查CheckBox.AutoCheck Property
答案 4 :(得分:0)
一个非常短的命令:
checkBox.Checked = !checkBox.Checked;
答案 5 :(得分:0)
如果要在一个表单上更改复选框的复选框状态,则需要快速可靠的代码,而不会有复杂性。
最好的方法是使用:
CheckBox.CheckState
您可以将复选框状态更改为(未选中),例如使用以下代码:
checkbox1.CheckState = CheckState.Unchecked;
checkbox2.CheckState = CheckState.Unchecked;
checkbox3.CheckState = CheckState.Unchecked;
如需进一步阅读,请参阅MSDN的this。
答案 6 :(得分:0)
问题很不清楚,但如果有人还在为复选框而苦恼:
在两者之间切换(两个复选框不能同时勾选,最少需要勾选一个):
private void chkBoxON_CheckedChanged(object sender, EventArgs e)
{
if (chkBoxON.Checked)
{
chkBoxOFF.Checked = false;
// here some code to do after this checkbox is ticked
}
else
{
chkBoxOFF.Checked = true;
}
}
private void chkBoxOFF_CheckedChanged(object sender, EventArgs e)
{
if (chkBoxOFF.Checked)
{
chkBoxON.Checked = false;
// here some code to do after this checkbox is ticked
}
else
{
chkBoxON.Checked = true;
}
}
如果您只需要选中一个或两个都未选中,则:
if (chkBoxON.Checked)
{
chkBoxOFF.Checked = false;
}
}
private void chkBoxOFF_CheckedChanged(object sender, EventArgs e)
{
if (chkBoxOFF.Checked)
{
chkBoxON.Checked = false;
}
如果您需要使用按钮更改其状态,则:
private void button1_Click(object sender, EventArgs e)
{
chkBoxON.Checked = false;
//chkBoxON.Checked = true; //if need to be checked
}
如果您需要禁用单击复选框的可能性,则:
chkBoxOFF.Enabled = false;
答案 7 :(得分:-1)
您只需要使用NOT运算符即可创建最简单的切换。
checkBox.Checked = !checkBox.Checked;