如何确定多个复选框状态

本文关键字:复选框 状态 何确定 | 更新日期: 2023-09-27 18:25:45

 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");

还可以使用 LINQ 循环遍历UserControl中的每个CheckBox控件,并测试它们是否全部选中。如果复选框的数量

//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以指示检查了多少(或哪些(。 如果您只关心是否检查了 ALL 和/或检查了多少,它看起来像这样:

public bool AllAreChecked
{
    return uc.Controls.OfType<CheckBox>().All(x => x.Checked);
}
public int NumberChecked
{
    return uc.Controls.OfType<CheckBox>().Count(x => x.Checked);
}

如果您想了解特定的复选框,那么没有通用的解决方案 - 我们需要了解有关控件的更多信息 - 复选框是如何生成的? 每个复选框是否有一些外部含义?