我发现可以验证 linq 是否选择了复选框。
我得到了像这样的代码
btnAgree.Enabled = (from chkbox in Controls.OfType<CheckBox>() select chkbox).Count(b => b.Checked) >= 2;
但我的情况就像我的获胜表单上有很多复选框,但我想检查我的组框内的任何复选框都被 LINQ 选中。有可能吗,但我还是没有办法。请帮我写代码。
我有一个有点相似的小代码。代码如下
public static IEnumerable<T> AllControls<T>(this Control startingPoint) where T : Control
{
bool hit = startingPoint is T;
if (hit)
{
yield return startingPoint as T;
}
foreach (var child in startingPoint.Controls.Cast<Control>())
{
foreach (var item in AllControls<T>(child))
{
yield return item;
}
}
}
var checkboxes = control.AllControls<CheckBox>();
var checkedBoxes = control.AllControls<CheckBox>().Where(c => c.Checked);
但是如何自定义此代码以使其与我的所有复选框所在的组框一起使用。请指导。另一个问题是我使用的是 c# v2.0。谢谢