Datagridview удалить все столбцы - PullRequest
5 голосов
/ 15 сентября 2011

Можно ли одним ударом удалить все столбцы из сетки данных?

Я знаю, что мог бы сделать цикл и удалить их один за другим, или удалить весь объект и создать его.

Но можно просто очистить столбцы и оставить сетку на месте, чтобы пользователи могли начать все сначала. т.е. вернуть его в исходное состояние.

ОК, вот код, который у меня есть

private void PopulateGrid()
    {
        UserVGrid.AutoGenerateColumns = false;
        UserVGrid.Columns.Clear();
        List<string> _values = populate.GetVaribles;
        foreach (var line in _values)
        {
            if (!line.Contains("Startind"))
            {
                string[] newline = line.Split('=');
                DataGridViewColumn newColumn = new DataGridViewTextBoxColumn(); 
                newColumn.Name = newline[0]; 
                newColumn.HeaderText = newline[1]; 
                newColumn.ToolTipText = newline[2]; 
                UserVGrid.Columns.Add(newColumn); 

            }
        }

так что давайте предположим, что _values ​​имеет значения apple, pear и

, запустив этот метод один раз, и я получаю сетку данных с двумя столбцами, названными apple и pear.

запускать его во второй раз на этот раз с _values, связывающимися с char, таблица.
И я в конечном итоге с 4 столбами яблоко, груша, стул и стол. То, что я хочу, это второй раз, когда он запускается, он очищает сетку кулак и затем применяет новые столбцы.

Приветствия

Aaron

Ответы [ 4 ]

24 голосов
/ 15 сентября 2011

В коллекции столбцов DataGridView есть метод Clear ().

dataGridView1.Columns.Clear();

Это не работает с привязанным сетевым представлением и автоматически сгенерированными столбцами - в этом случае просто замените источник данных на ноль или напустой источник данных:

dataGridView1.DataSource = null;

или отключите автогенерацию и создайте столбцы в коде:

dataGridView1.AutoGenerateColumns = false;
DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn();
dataGridView1.Columns.Add(col);

Эти сгенерированные вручную столбцы будут удалены методом Clear ().

0 голосов
/ 14 ноября 2017

для удаления столбцов dataGridView вы можете сделать так, чтобы "P_Comment" был именем столбца

        dataGridView1.Columns.Remove("p_Comment");

, а для удаления всех столбцов вы можете использовать

dataGridView1.Columns.Clear();
0 голосов
/ 02 октября 2015

Очистить таблицу данных

If ds.Tables.Count > 0 Then
    ds.Tables(0).Columns.Clear()
    ds.Tables(0).Rows.Clear()
End If

и установить для источника данных datagridview значение ничего

dg.DataSource = Nothing
0 голосов
/ 06 августа 2015

Вот что у меня сработало

 List<string> lstOverride = new List<string>();
                lstOverride.Add("IssuerOnly");
                lstOverride.Add("TickerOnly");
                lstOverride.Add("All");
                lstOverride.Add("Private Equity");
                lstOverride.Add("Ignore");
                DataGridViewComboBoxColumn cmb = new     DataGridViewComboBoxColumn();
                cmb.HeaderText = "Override";
                cmb.Name = "cmb";
                cmb.DataSource = lstOverride;
                cmb.DataPropertyName = "Override";
                dgvWebData.Columns.Add(cmb);

Я добавил DataGridViewComboBoxColumn и установил DataPropertyName этого столбца, который мне нужен для раскрывающегося списка.

...