Datagridview删除所有列

时间:2011-09-15 12:37:02

标签: 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); 

            }
        }

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

运行此方法一次,我得到一个带有两个名为apple和pear的列的数据网格。

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

干杯

亚伦

5 个答案:

答案 0 :(得分:23)

DataGridView列集合具有Clear()方法。

dataGridView1.Columns.Clear();

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

dataGridView1.DataSource = null;

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

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

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

答案 1 :(得分: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设置为我需要下拉的列。

答案 2 :(得分:0)

清除数据表

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

并将datagridview数据源设置为空

dg.DataSource = Nothing

答案 3 :(得分:0)

用于删除dataGridView的列,你可以这样做“P_Comment”是列名称

        dataGridView1.Columns.Remove("p_Comment");

并删除所有可以使用的列

dataGridView1.Columns.Clear();

答案 4 :(得分:0)

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

            ds2.Tables.Clear();
            dataGridView1.DataSource = null;
            dataGridView1.Columns.Clear();