暴力畫上去一個checkbox以後并不一定需要用它自定義的checkbox選中狀态改變事件,我們還可以用DataGridView的ColumnHeaderClick事件去做這個效果,這樣的程式設計風格更符合Winform開發的風格。

private void dgvDateGridView_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.ColumnIndex == dgvDataGridView.Columns["Checked"].Index)//如果點選的是checkbox列
{
DataTable dtData = dgvTaskDetail.DataSource as DataTable;
if (dtData != null)
{
//設定check狀态和列頭的checkbox同步
foreach (DataRow drTemp in dtData.Rows)
{
drTemp["Checked"] = this.gvcCheckboxHeader.Checked;
}
}
}
}