6

是否可以一次性删除数据网格中的所有列?

我知道我可以循环并一个一个删除它们,或者删除整个东西并创建它。

但是可以简单地清除列并保留网格,以便用户可以重新开始。即把它恢复到原来的状态。

好的,这是我的代码

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 的列。

这次使用包含 char 、 table 的 _values 再次运行它。
最后我得到了 4 个苹果、梨、椅子和桌子。我想要的是第二次运行它清除网格拳头,然后应用新的列。

干杯

亚伦

4

5 回答 5

28

DataGridViewcolumns 集合有一个 Clear() 方法。

dataGridView1.Columns.Clear();

这不适用于绑定的 datagridview 和自动生成的列 - 在这种情况下,只需将数据源替换为 null 或空数据源:

dataGridView1.DataSource = null;

或关闭自动生成并在代码中创建列:

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

这些手动生成的列将被 Clear() 方法删除。

于 2011-09-15T12:40:48.007 回答
0

这对我有用

 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我需要下拉的列。

于 2015-08-06T12:44:05.283 回答
0

清除数据表

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

并将 datagridview 数据源设置为空

dg.DataSource = Nothing
于 2015-10-02T15:43:46.613 回答
0

要删除 dataGridView 的列,您可以这样做,“P_Comment”是 Columns Name

        dataGridView1.Columns.Remove("p_Comment");

并删除您可以使用的所有列

dataGridView1.Columns.Clear();
于 2017-11-14T10:06:15.307 回答
0

这使我可以从 datagridview 中删除所有数据和列标题

            ds2.Tables.Clear();
            dataGridView1.DataSource = null;
            dataGridView1.Columns.Clear();
于 2020-12-16T21:57:02.943 回答