флажки c # проверяют состояние - PullRequest
0 голосов
/ 23 февраля 2012

Я новичок в C #, я пытаюсь получить состояние флажка. Я сделал:

foreach (Control ctr in newProject.Controls) {
                if (ctr is CheckBox && ctr.Name.Contains("engine")) {

                }
            }

ctr.Checked не работает, очевидно, как я могу проверить состояние ctr, когда ctr является флажком?

Ответы [ 4 ]

4 голосов
/ 23 февраля 2012

После того, как вы убедились, что это флажок, вы можете привести к нужному типу и прочитать свойство Checked:

foreach (Control ctr in newProject.Controls) {
            if (ctr is CheckBox && ctr.Name.Contains("engine") 
                    && ((CheckBox)ctr).Checked) {

            }
        }
3 голосов
/ 23 февраля 2012
var checkBoxes = newProject.Controls
    .OfType<CheckBox>()
    .Where(x => x.Name.Contains("engine"))
    .ToList();

foreach(var cb in checkBoxes)
{
    if (cb.Checked)
        // rest of your code...
}

Если вас интересуют только проверенные, используйте:

var checkBoxes = newProject.Controls
    .OfType<CheckBox>()
    .Where(x => x.Name.Contains("engine") && x.Checked)
    .ToList();
2 голосов
/ 23 февраля 2012

Сначала нужно поставить его на флажок.

 CheckBox chk = (CheckBox)ctr;
 // Now you can do this: chk.Checked
1 голос
/ 23 февраля 2012

Ваш флажок имеет идентификатор, например checkBox1.Вы можете получить доступ к элементу управления флажком напрямую, используя этот идентификатор.

if (checkBox1.Checked) {
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...