Флажок в конкретной метке - PullRequest
0 голосов
/ 30 октября 2019

Это действительно легко, но сложно объяснить:

У меня есть флажки, всего 10, но есть предел, мы можем проверить только 5 из 10. Давайте представим, что мы ставим галочку в два и нажимаемValidate. Я бы получил массив bool, который выглядит следующим образом:

true, false, true, false, false, true, false, false, false, false

Зная, что у каждого поля есть значение:первая коробка = животное вторая коробка = заглавная ....

Теперь я перехожу к моему вопросу:

У меня есть 5 меток, и я бы хотел, чтобы это было 5 меток, соответствующих значениюфлажок. Итак, как сделать так, чтобы 5 меток - это все другое значение, соответствующее флажку.

Вот мой код:

    bool[] categorie = new bool[10] { 
        false, true, false ,true ,false ,
        true ,false ,true, false, true };

    string[] categorieName = new string[10] {
       "Animaux", "Capitale", "Fruit", "Légume", "Pays", 
       "Prénom fille", "Prénom garçon", "Métier", "Moyen de transport", "Sport" };

Итак, я уже завершил массив bool, но он завершает сам себясам по себе в соответствии с флажками

И второе значение.

поэтому я хотел бы, чтобы мои метки были:

Capitale, Légume, pays, prénom garcon, moyen deтранспорт

Спасибо, что дали, и, пожалуйста, объясните решение (цикл для? если? Я не знаю)

1 Ответ

0 голосов
/ 30 октября 2019

Давайте организуем CheckBox es в коллекцию, скажем, массив:

 Tuple<CheckBox, Control>[] m_Categories = null;

 public MyForm() {
   // I've assumed WinForms - InitializeComponent()
   InitializeComponent();

   // CheckBox and its corresponding Label
   m_Categories = new Tuple<CheckBox, Control>[] {
     Tuple.Create(cbAnimaux, labelAnimaux),   
     Tuple.Create(cbCapitale, labelCapitale),     
     ...
     Tuple.Create(cbSport, labelSport), 
   };
 }

Тогда вы можете легко обновить соответствующие Label s:

 foreach (var record in m_Categories)
   record.Item2.Text = record.Item1.Checked // If CheckBox is  
     ? record.Item1.Text // checked, label gets CheckBoxes Text
     : "";               // not checked, label has an empty Text
...