Нужна помощь с TabControl

145
08 сентября 2019, 00:10

Всех привествую, появился вопрос. Не могу при нажатии кнопки Clear не стираются позиции чексбоксов и текстовых полей. Чексбоксы и текстовые поля находятся в tabcontrol, которые завёрнуты в GroupBox. Вот мой код. Может лучше замесь List использовать IEnumerable. Уже всю голову сломал, но так и ничего не выходит. Прошу вашей помощи.

private void clearBoxes_Click(object sender, EventArgs e)
        {
            this.isDisabledCheckedChanged = true;
            foreach (Control control in GetChild<Control>(mainTabControl))
            {
                TextBox textBox;
                ComboBox comboBox;
                if ((checkBox = (control as CheckBox)) != null)
                {
                    checkBox.Checked = false;
                }
                else if ((textBox = (control as TextBox)) != null)
                {
                    if (!textBox.Name.Equals("toastMessageTBox"))
                    {
                        textBox.Text = "";
                        textBox.Enabled = false;
                    }
                }
                else if ((comboBox = (control as ComboBox)) != null)
                {
                    comboBox.Enabled = false;
                }
            }
            this.progressTbox.Text = "";
            this.orderLv.Items.Clear();
            this.isDisabledCheckedChanged = false;
        }
        private static List<T> GetChild<T>(Control ctrl) where T : Control
        {
            List<T> tbs = new List<T>();
            foreach (Control c in ctrl.Controls)
            {
                if (c is T)
                {
                    tbs.Add((T)c);
                }
            }
            return tbs;
        }
Answer 1
private static void GetChildren<T>(Control aParent, List<T> aList) where T : Control
{
  aList.AddRange(aParent.Controls.OfType<T>());
  foreach(Control c in aParent.Controls)
  {
    GetChildren<T>(c, aList);
  }
}
  List<CheckBox> checkboxes = new List<CheckBox>();
  GetChildren<CheckBox>(mainTabControl, checkboxes);
  checkboxes.ForEach(ch => ch.Checked = false);
  /*foreach (CheckBox ch in checkboxes)
  {
    ch.Checked = false;
  }*/
READ ALSO
Zebra LP 2824 и печать через COM

Zebra LP 2824 и печать через COM

Некоторое время назад написал программу для печати на самоклеящихся этикетках для Zebra-образных принтеров

115
Windows Forms и System.Threading.Timer [дубликат]

Windows Forms и System.Threading.Timer [дубликат]

На данный вопрос уже ответили:

128
Настройка связи с помощью Entity Framework

Настройка связи с помощью Entity Framework

Есть основная таблица с записями, в проекте описана как следующий класс

131
Конвертирование String в StringBuilder и обратно

Конвертирование String в StringBuilder и обратно

Есть некий метод, который получает в качестве параметра довольно большую стринговину (порядка 50000 символов и более)Метод разбивает полученную...

114