錯誤訊息
從中斷點內可以發現到 DataGridView.Columns 內目前完全沒有存在任何欄位資訊
發現 Code 在建立 DataGridViewColumn 時,因為該欄位資訊也會應用在其他地方,所以把該欄位拉出來為 private property 暫存,該 DataGridViewColumn 變成重覆加入 DataGridView 內,範例 Code 如下
private DataGridViewTextBoxColumn _col { get; set; } = new DataGridViewTextBoxColumn() { HeaderText = "文字說明", DataPropertyName = "資料來源" };
private void button1_Click(object sender, EventArgs e)
{
var dgv1 = new DataGridView();
dgv1.Columns.Add(_col);
// 該 DataGridViewTextBoxColumn 重覆加入 DataGridView 內
var dgv2 = new DataGridView();
dgv2.Columns.Add(_col);
}
從中斷點內確認 DataGridViewColumn.DataGridView property 在把 DataGridViewColumn 加入 DataGridView 時,就會自動補上該資訊,之後該 DataGridViewColumn 再拿去加入其他 DataGridView 就會拋出 Excpetion,假如透過 DataGridView.Columns.Remove() 或 DataGridView.Columns.Clear() 清除後,該 DataGridViewColumn.DataGridView 會變成 null 就可以再次加入其他 DataGridView中斷點內觀察 DataGridViewColumn.DataGridView property 變化,原來 property 有變化會有顏色 Highligh 顯示,之前都沒有注意到這點
沒有留言:
張貼留言