當使用者在 DataGridView 選取列並按 Delete 時,會觸發 UserDeletingRow 事件。在事件處理器中顯示確認對話框,若使用者取消則設定 e.Cancel = true。
private void DataGridView1_UserDeletingRow(
object sender, DataGridViewRowCancelEventArgs e) {
// 忽略新增列(IsNewRow 為 true)
if (!e.Row.IsNewRow) {
DialogResult result = MessageBox.Show(
"確定要刪除此筆資料列嗎?",
"請確認",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question,
MessageBoxDefaultButton.Button2);
if (result == DialogResult.No)
e.Cancel = true; // 取消刪除
}
}
圖示:使用者按下 Delete 鍵後彈出確認視窗,選擇「否」則保留該列。
e.Row.IsNewRow 用於過濾資料繫結模式下的新增佔位列。MessageBoxDefaultButton.Button2 將預設焦點設為「否」,提高安全性。RowValidating、CellEndEdit 等事件加入驗證邏輯。