Datagridview删除所有列

Dev*_*WAH 5 c# datagridview datagridviewcolumn

是否可以在单个匹配中从数据网格中删除所有列?

我知道我可以循环并逐个删除它们,或删除整个事物并创建它.

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

好的,这是我的代码

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); 

            }
        }
Run Code Online (Sandbox Code Playgroud)

所以我们假设_values有apple,pear作为值

运行此方法一次,我得到一个数据网格,其中包含两个名为apple和pear的列.

这次运行它第二次使用_values包含char,table.
我最终得到了4支苹果,梨,椅子和桌子.我想要的是它第二次运行它清除网格然后应用新的colums.

干杯

亚伦

Dav*_*all 25

DataGridView栏目收集有明确的()方法.

dataGridView1.Columns.Clear();
Run Code Online (Sandbox Code Playgroud)

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

dataGridView1.DataSource = null;
Run Code Online (Sandbox Code Playgroud)

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

dataGridView1.AutoGenerateColumns = false;
DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn();
dataGridView1.Columns.Add(col);
Run Code Online (Sandbox Code Playgroud)

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