Как очистить элементы управления, то есть TextBoxes, ComboBoxes, CheckBoxes и т. Д. Внутри панели управления в C # - PullRequest
0 голосов
/ 26 января 2019

У меня есть форма с TextBoxes, ComboBoxes, CheckBoxes, DataGridView внутри панели. Для события «Нажатие кнопки» у меня есть следующая процедура для очистки элементов управления:

public void ClearControlValues(Control Container)
    {
        try
        {
            foreach (Control ctrl in Container.Controls)
            {
                if (ctrl.GetType() == typeof(TextBox))
                {
                    ((TextBox)ctrl).Text = "";
                }

                if (ctrl.GetType() == typeof(ComboBox))
                {
                    ((ComboBox)ctrl).SelectedIndex = -1;
                }

                if (ctrl.GetType() == typeof(CheckBox))
                {
                    ((CheckBox)ctrl).Checked = false;
                }

                if (ctrl.GetType() == typeof(DateTimePicker))
                {
                    ((DateTimePicker)ctrl).Text = "";
                }

                if (ctrl.GetType() == typeof(DataGrid))
                {
                    ((DateTimePicker)ctrl).Text = "";
                }

                if (ctrl.Controls.Count > 0)
                {
                    LockControlValues(ctrl);
                }

            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

Нажатие кнопки вызова:

ClearControlValues(this);

Но: Элементы управления внутри моей панели «MainPanel» не очищаются. Чего мне не хватает?

1 Ответ

0 голосов
/ 26 января 2019

Этот код решает проблему:

public void ClearControlValues(Control Container)
    {

        foreach (Control c in Container.Controls)
        {
            if (c is CheckBox)
            {
                CheckBox cb = (CheckBox)c;
                cb.Checked = false;
            }

            if (c is TextBox)
            {
                TextBox tb = (TextBox)c;
                tb.Text = "";
            }

            if (c is ComboBox)
            {
                ComboBox cb = (ComboBox)c;
                cb.SelectedIndex = -1;
            }

            if (c is DateTimePicker)
            {
                DateTimePicker dtp = (DateTimePicker)c;
                dtp.Text = DateTime.Today.ToString();
            }

            if (c is DataGridView)
            {
                DataGridView dgv = (DataGridView)c;
                dgv.Rows.Clear();
                dgv.Refresh();

            }
        }


    }

Призвание:

ClearControlValues(MainPanel);

Спасибо,

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