2011-09-15 86 views
4

是否有可能在一個命中從數據網格中刪除所有列?Datagridview刪除所有列

我知道我可以循環,並逐個刪除它們,或刪除整個事物並創建它。

但可以簡單地清除列並將網格留在原位,以便用戶可以重新開始。 即將其恢復到其原始狀態。

確定這裏是我的代碼有

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有蘋果,梨作爲值

一旦運行這個方法,我也得到一個名爲蘋果和梨2個colums一個DataGrid。

這次第二次運行它,_values包含char,table。
而我最終得到4 colums蘋果,梨,椅子和桌子。我想要的是第二次運行它清除網格拳頭,然後應用新的colums。

乾杯

亞倫

回答

20

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

dataGridView1.Columns.Clear(); 

這不綁定的DataGridView和自動生成的列上工作 - 在這種情況下,簡單地用空或空的數據源替換數據源:

dataGridView1.DataSource = null; 

或關閉自動生成和創建列代碼:

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

這些手動生成的列將被Clear()方法刪除。

+0

雖然,你是否試圖刪除所有的數據,但離開網格?要求將電網恢復原狀的問題部分並不十分清楚。 –

+0

對不起,我真正想要做的是刪除它自己的coloum不僅僅是它的數據。基本上dataview從文本文件配置中填充,此刻如果我打開它兩次,我得到重複。所以我想要一些代碼來刪除數據視圖中的所有當前列。 – DevilWAH

+1

@DevilWAH在那種情況下,我的答案確實是你想要的 - 在自動生成的列周圍的明顯警告 –

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

0

清除數據表

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

,並設置datagridview的數據源,以什麼

dg.DataSource = Nothing 
0

去除的dataGridView,你可以做這樣的 「P_Comment」 的列是列名

 dataGridView1.Columns.Remove("p_Comment"); 

並刪除所有可以使用的列

dataGridView1.Columns.Clear();