LINQ Ansatz
Sie Vorteil der abfragenden Fähigkeit von LINQ nehmen könnte die OfType<T>()
Methode unter Verwendung aller Ihrer individuellen CheckBox Kontrollen zu greifen und dann einen Count()
Anruf zu sehen, wie tatsächlich geprüft wurden viele:
// Get the number of CheckBox Controls that are checked
var checkedBoxes = Form.Controls.OfType<CheckBox>().Count(c => c.Checked);
// Determine if your specific criteria is met
if(checkedBoxes > 3)
{
// You shall pass!
}
else
{
// None shall pass
}
Sie benötigen, um sicherzustellen, dass Sie einen Verweis auf LINQ haben hierfür die folgende using-Anweisung, indem als gut zu funktionieren:
using System.Linq;
Iterative Looping Ansatz
Alternativ können Sie einfach durchlaufen und eine Zählung entsprechend über eine foreach
Schleife erhöht, wie unten zu sehen:
// Store your count
var checkedBoxes = 0;
// Iterate through all of the Controls in your Form
foreach(Control c in Form.Controls)
{
// If one of the Controls is a CheckBox and it is checked, then
// increment your count
if(c is CheckBox && (c as CheckBox).Checked)
{
checkedBoxes++;
}
}
Beispiel (mit Ausgang)
Sie können a GitHub Gist that fully reproduces this here finden und unten gezeigt:
Es erkennt mich nicht den OfType. Benötige ich etwas? –
Versuchen Sie, einen Verweis auf LINQ über 'using System.Linq;' hinzuzufügen. –
Muss ich etwas ersetzen? weil es keine aktivierten Kontrollkästchen enthält –