UCmultiple uc = new UCmultiple(); //here UCmultiple is User Control it contains checkbox
string strText;
if (uc.checkBox1.Checked == true)
{
strText = checkBox1. Text;
}
如果复选框在用户控件中,如何知道是否选中了多个复选框?
UCmultiple uc = new UCmultiple(); //here UCmultiple is User Control it contains checkbox
string strText;
if (uc.checkBox1.Checked == true)
{
strText = checkBox1. Text;
}
如果复选框在用户控件中,如何知道是否选中了多个复选框?
要找出检查了多少个复选框,您可以使用
uc.Controls.OfType<CheckBox>().Where(x => x.Checked).Count();
如果计数大于 1,则检查多个..
如果您只检查几个复选框,那么最好只检查它们
if(firstCheckbox.Checked && secondCheckbox.Checked)
您可以使用AND ( &&
) 逻辑运算符。它执行两个逻辑语句(但是,如果第一个是假的,它不会检查下一个)
if (uc.checkBox1.Checked && uc.checkBox2.Checked)
MessageBox.Show("clicked");
您还可以循环使用LINQCheckBox
中的每个控件并测试它们是否都被选中。如果复选框的数量UserControl
//If the amount of checkboxes is == to the amount of checked checkboxes
if (uc.Controls.OfType<CheckBox>().All(x => x.Checked))
MessageBox.Show("clicked");
您还可以获得选中复选框的数量
uc.Controls.OfType<CheckBox>().Where(x => x.Checked).Count()
我不会窥视用户控件的控件——这使得以后很难更改用户控件。
我会添加一个属性来UCMultiple
指示检查了多少(或哪些)。如果您只关心是否检查了所有和/或检查了多少,它看起来像这样:
public bool AllAreChecked
{
return uc.Controls.OfType<CheckBox>().All(x => x.Checked);
}
public int NumberChecked
{
return uc.Controls.OfType<CheckBox>().Count(x => x.Checked);
}
如果您想了解特定的复选框,那么没有通用的解决方案 - 我们需要了解更多关于控件的信息 - 复选框是如何生成的?每个复选框是否有一些外部含义?