[winform] 關於如何清空DataGridView,但不刪除標題行
阿新 • • 發佈:2018-12-09
對於標題行需要繫結資料來源的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();
}