1. 程式人生 > >[winform] 關於如何清空DataGridView,但不刪除標題行

[winform] 關於如何清空DataGridView,但不刪除標題行

對於標題行需要繫結資料來源的DataGridView,在清空時,若直接使用this.datagridview1.DataSource=null的方式,則會把繫結好的資料來源都清空,只有在下次重新開啟窗體時,才會初始化成繫結資料來源的狀態。

而使用 this.dataGridView1.Rows.Clear(); 對於當前非null的DataGridView控制元件則會報錯:不能清除此列表

但此種方式只適用於this.datagridview1.DataSource != null的情況,然而除錯發現,全是空行的DataGridView,其DataSource為null,可Rows.Count卻是大於0,此時用this.dataGridView1.Rows.Clear();正好解決!

綜上所述,完整程式碼如下:

if (this.dataGridView1.DataSource != null)
 {
          DataTable dt = (DataTable)this.dataGridView1.DataSource;
          dt.Rows.Clear();
          this.dataGridView1.DataSource = dt;

 }

else if (this.dataGridView1.Rows.Count > 0)
 {
         this.dataGridView1.Rows.Clear();
 }