我有许多复选框,我想将它们作为切换按钮处理。每个都完全独立于另一个,可以选中或不选中。当用户单击复选框/按钮时,它保持选中状态,如果用户再次单击,则复选框/按钮返回“未选中”状态。复选框/按钮可以选中/取消选中本身吗?
我已经尝试了很长时间,也在互联网上搜索并找不到解决方案。
我有许多复选框,我想将它们作为切换按钮处理。每个都完全独立于另一个,可以选中或不选中。当用户单击复选框/按钮时,它保持选中状态,如果用户再次单击,则复选框/按钮返回“未选中”状态。复选框/按钮可以选中/取消选中本身吗?
我已经尝试了很长时间,也在互联网上搜索并找不到解决方案。
Check the status of the check box, every time the button is clicked, change it.
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;
}
}
一个很短的命令:
checkBox.Checked = !checkBox.Checked;
问题是复选框/按钮始终被“显示”,即它在选中时具有的“蓝色”颜色没有改变,给人的印象是它没有被选中。– 用户 1304490
可能设置CheckBox.ThreeState属性 false 有帮助。
如果 ThreeState 属性设置为 false,则 CheckState 属性值只能在代码中设置为 System.Windows.Forms.CheckState 的 Indeterminate 值,而不能通过用户交互。
You can assign a common event to all Checkboxes. Write this code in your .cs file and select all Checkboxes and assign this event to checkedChange event.
private void chkboxes_CheckedChanged(object sender, EventArgs e)
{
CheckBox chk = (CheckBox)sender;
if(!chk.Checked)
chk.Checked = true;
else
chk.Checked = false;
}
参考:CheckBox.CheckState属性。
它是读写属性,因此您可以在 GUI 中或通过代码进行设置。
Checked CheckBox 显示一个复选标记。控件出现凹陷。
未选中CheckBox 为空。控件出现凸起。
Indeterminate CheckBox 显示复选标记并带有阴影。控件显示为扁平。
将其写入已检查的更改事件并检查它是否切换.. 它将像开关一样工作..
label1.Text = "ThreeState: " + checkBox1.ThreeState.ToString() + "\n" + "Checked: " +
checkBox1.Checked.ToString() + "\n" + "CheckState: " + checkBox1.CheckState.ToString();
为您的问题的答案检查CheckBox.AutoCheck 属性
当您想更改一个表单上太多复选框的复选框状态时,您需要快速可靠的代码,而不是复杂性。
最好的方法是使用:
CheckBox.CheckState
例如,您可以使用以下代码将复选框状态更改为(未选中):
checkbox1.CheckState = CheckState.Unchecked;
checkbox2.CheckState = CheckState.Unchecked;
checkbox3.CheckState = CheckState.Unchecked;
如需进一步阅读,请参阅MSDN 中的此内容。
这个问题非常不清楚,但如果有人仍在为复选框而苦苦挣扎:
在其中两个之间切换(不能同时勾选两个复选框,至少需要勾选一个):
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;
您只需要使用 NOT 运算符来创建最简单的切换。
checkBox.Checked = !checkBox.Checked;