C#如何计算所选复选框的数量?

时间:2018-03-14 15:14:34

标签: c#

我的家庭作业项目是一个表格,其中包含3个复选框,或者在一个组框中。我需要知道用户选择了这3个复选框中有多少个,因为每个选中的复选框都会增加价格。我不需要知道已选中的确切复选框,因为每个复选框都会添加相同的数量。所有我需要知道的是用户选择了多少。

我不能在这个作业中使用复选框列表。它应该只有3个复选框,而不是复选框列表。

我在考虑使用列表或集合,但我不知道如何进行控件集合。

3 个答案:

答案 0 :(得分:5)

试试这个:

int i = Groupbox.Controls.OfType<CheckBox>().Where(c => c.Checked).Count();

或者

int i = Groupbox.Controls.OfType<CheckBox>().Count(c => c.Checked);

答案 1 :(得分:0)

也许是这样的?如果你不熟悉linq

selenium webdriver

答案 2 :(得分:0)

有两种方法可以解决这个问题。

自行列出/制作复选框

到目前为止,我只使用Designer来创建控件。如果你给所有控件命名,你可以像这样形成一个Checbox数组:

CheckBox[] CheckBoxes = { checkBox1, checkBox2, /*...*/ };

如果金额是可变的,那么自己创建Chekbox可能会变得非常有用。这并不像听起来那么难 - 事实上,设计师可以做任何你不能做的事情。 WindowsForms适用于部分类,其中Designer编写类的一部分,另一部分。 Designer编写的内容是在构造函数中调用“InitialiseComponents()”执行的。

自己创建元素时的难点通常是将它们放入具有正确联合的适当容器中。

将其保留在

背后的代码中

访问UI以获取数据有点不受欢迎。相反,所有数据都应该在后面的代码中。所以应该有3个bool,每个Checkbox 1个。或者也许是一个反变量。

每个Checkbox可以有1个Check和Unckeck事件处理程序,用于设置适当的Bool。或者你有一个Check和一个Uncheck处理程序,用于增加/减少计数器变量的所有3个复选框。

让Ui知道后面代码的变化有点棘手。我不确定你是否需要更新某个标签,但是用于增加/减少计数器的代码也应该强制重新计算。