2009-11-30 51 views
2

我發現在SO上已經發現了類似的問題,實際上遍佈網絡。雖然我還沒有找到工作答案。如何在C#中清空DataGridView的單元格?

所以我在Windows窗體應用程序使用Visual Studio 2008的工作語言是C#

我有一個DataGridView是綁定到數據源。

這樣:

MyDataGridView.DataSource = null; 

不會工作...

我也試過

MyDataGridView.Rows.Clear(); 

但這刪除我所有的定製行。

所以我現在正在尋找一種方法來清空所有單元格的內容(不包括標題單元格)。所以它不應該影響其他任何東西,除了細胞本身的內容。

回答

0

我剛想出如何自己做,我只是循環槽表,清理我遇到的每個細胞。

注:「dgUsers」是我的DataGridView

for (int i = 0; i < dgUsers.Columns.Count ;i++) 
     { 
      for (int j = 0; j < dgUsers.Rows.Count; j++) 
      { 
       dgUsers.Rows[j].Cells[i].Value = ""; 
      } 
     } 

的我敢打賭,有一個更好的方式來做到這一點,這可能看起來有點草率,但它的工作名稱。然而,我想聽到一個更好的解決方案,清除數據。

+0

如果你的行沒有實際綁定任何東西,這可能是最好的方法。 – 2013-08-13 21:06:20

0

由pieter888 didnt代碼工作對我來說我想出代碼爲

int cnt=dataGridView1.Rows.Count; 
     for (int i = 0; i < cnt; i++) 
     { 
      dataGridView1.Rows.Remove(dataGridView1.Rows[0]); 
     } 
-2

您可以通過使用

gridviewname.columns.clear(); 
0

我相信使用LINQ,你可以把它清潔劑清除整個電網,特別是與隱性類型:

foreach (var cell in from DataGridViewRow row in dgv.Rows from DataGridViewCell cell 
    in row.Cells select cell){ 
     cell.Value = string.Empty; 
    } 
3
for (int i = 0; i < MyDataGridView.Columns.Count ;i++) 
    { 
     for (int j = 0; j < MyDataGridView.Rows.Count; j++) 
     { 
      MyDataGridView.Rows[j].Cells[i].Value = DBNull.Value; 
     } 
    } 
+0

添加一些解釋 – HaveNoDisplayName 2016-08-19 02:26:22

相關問題