Динамическое удаление столбца из таблицы данных - PullRequest
1 голос
/ 19 октября 2010

Я связываю набор данных с сеткой данных и хочу дать пользователю возможность удалять (возможно, с помощью флажка?) Столбцы, которые он не знает, чтобы увидеть.

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

Что вы используете, чтобы предоставить пользователю эту функциональность?

Ответы [ 3 ]

2 голосов
/ 19 октября 2010

Если бы вы использовали флажок, у вас было бы что-то вроде этого:

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    CheckBox c = (CheckBox)sender;
    if (c.Checked)
        Column1.Visible = true;
    else
        Column1.Visible = false;
}

Вы бы просто изменили имя Column1 на любой столбец, который вы хотите показать / скрыть, и связать событие с соответствующими флажками.

В конструкторе для формы я бы сделал что-то вроде Checkbox1.checked = true;, чтобы первый _CheckChanged скрыл это, но это ваше дело.

1 голос
/ 19 октября 2010

Я предлагаю следующее:

Создайте CheckListBox и добавьте в него элемент CheckBox для каждого столбца сетки, это код:

foreach (DataGridViewColumn column in dataGridView1.Columns)
        {
            checkedListBox1.Items.Add(column.HeaderText, column.Visible);
            checkedListBox1.ItemCheck += (ss, ee) =>
                {
                    if (checkedListBox1.SelectedItem != null)
                    {
                        var selectedItem = checkedListBox1.SelectedItem.ToString();
                        dataGridView1.Columns[selectedItem].Visible = ee.NewValue == CheckState.Checked; 
                    }
                };
        }

Удачи!

1 голос
/ 19 октября 2010

Я полагаю, что вы могли бы сделать это, просто установив для флага видимых столбцов значение false.

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