2012-02-23 3 views
-1

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

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

       } 
      } 

ctr.Checked Безразлично `работы, очевидно, как я могу проверить состояние ЕГО, когда СУУ флажок?

ответ

4

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

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

      } 
     } 
2

Вы должны бросить его флажок первым.

CheckBox chk = (CheckBox)ctr; 
// Now you can do this: chk.Checked 
1

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

if (checkBox1.Checked) { 
    ... 
} 
+0

это, кажется, лучший ответ! – trampi

+0

был элементом управления петлями, с большим количеством флажков, проверка каждого флажка отдельно не была целью вопроса –

3
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(); 
+0

вы любите linq, не так ли? ;) – trampi

+1

LINQ - это ответ на все! :-) –

+0

не является литой '((CheckBox) cb)' излишним? – clearpath

Смежные вопросы