在DataGridView中獲得DataGridViewCheckBoxColumn的狀態

在DataGridView中獲得DataGridViewCheckBoxColumn的狀態

在DataGridView中獲得DataGridViewCheckBoxColumn的狀態

當我們選中該Cell後,第1時間得到的該值爲:
dgView1.Rows(i).Cells(1).Value = False


不過在DataGridView.CurrentCellDirtyStateChanged事件中增加以下語句:
DataGridView.CommitEdit

該事件的意思是:單元格狀態因其內容更改而更改是發生

CommitEdit :將當前單元格中的更改提交到數據緩存,但不結束編輯模式

引自msdn:

通常,複選框單元格值專門用於存儲(如同其他任何數據一樣)或用於執行批量操作。如果您想在用戶單擊複選框單元格時立即作出響應,可以處理 DataGridView.CellClick 事件,但此事件發生在單元格值更新之前。如果在單擊時需要新的值,則有一個選項可以計算基於當前值的預期值。另一種方法是立即提交更改,並處理 DataGridView.CellValueChanged 事件以對此作出響應。要在單擊單元格時提交更改,必須處理 DataGridView.CurrentCellDirtyStateChanged 事件。在處理程序中,如果當前單元格是複選框單元格,將調用 DataGridView.CommitEdit 方法並傳入 Commit 值。

for (int i = 0; i < dg_tixing.RowCount; i++)
                {
                    string re_value = dg_tixing.Rows[i].Cells[0].EditedFormattedValue.ToString();
                    if (re_value=="True")//判斷勾選的
                    {

                        T_KeChengTiXing kc = new T_KeChengTiXing();
                        kc.course_id = PK_Course;
                        kc.tixing_id = Int32.Parse(dg_tixing.Rows[i].Cells[1].Value.ToString());
                        T_KeChengTiXingControl kcc = new T_KeChengTiXingControl();
                        kcc.Add(kc);
                        flag = true;

                    }
                    else
                    {
                        continue;
                    }
                }

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章