首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# DataGridView中遍歷勾選框列獲取選中行的方法

     編輯:程式設計綜合問答

DataGridView的 DataGridViewCheckBoxColumn 沒有專門的「勾選事件」,判斷哪些行被勾選需遍歷行集合檢查單元格值。

標準遍歷代碼

List<DataGridViewRow> checkedRows = new List<DataGridViewRow>();
foreach (DataGridViewRow row in dataGridView1.Rows) {
    // 忽略新行(允許用戶添加時的最後一行)
    if (row.IsNewRow) continue;
    
    // 假設勾選框在第0列,或用列名 "chkCol"
    var cellValue = row.Cells["chkCol"].Value; // 或 row.Cells[0].Value
    if (cellValue != null && (bool)cellValue == true) {
        checkedRows.Add(row);
    }
}

// 處理選中行
foreach (var row in checkedRows) {
    // 讀取該行其他列數據
    string id = row.Cells["IdCol"].Value.ToString();
    // ... 業務邏輯
}

要點

  • 單元格值類型為 bool(綁定布爾字段時)或 bool?(可為空),轉型前需非空判斷。
  • 若需即時響應勾選,可處理 CellContentClick 事件,調用 EndEdit() 提交編輯,再讀取值。
  • 批量操作時建議先收集行索引或數據對象,避免在遍歷中修改集合導致異常。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved