就我而言,我在currencymanager.AddNew();
的基礎上添加了新行。爲什麼IsNewRow總是返回false?
爲什麼IsNewRow
總是返回false
:
private void DGV_Students_CellValidated(object sender, DataGridViewCellEventArgs e)
{
if (DGV_Students.Rows[e.RowIndex].IsNewRow)
{
if (DGV_Students.Columns[e.ColumnIndex].Name == "student_id")
{
DataTable dt = new DataTable();
dt = Verify.VerifyStudentID(DGV_Students.Rows[e.RowIndex].Cells[0].Value.ToString());
if (dt.Rows.Count > 0)
{
DGV_Students.Rows[e.RowIndex].ErrorText = "هذا الطالب مسجل مسبقا ..!!";
MessageBox.Show("هذا الطالب مسجل مسبقا ..!!", "اضافة طالب جديد");
}
else if (DGV_Students.Rows[e.RowIndex].Cells[0].Value == DBNull.Value)
{
DGV_Students.Rows[e.RowIndex].ErrorText = "لا ينبغي ترك حقل السجل المدني فارغاً..!!";
MessageBox.Show("لا ينبغي ترك حقل السجل المدني فارغاً..!!", "اضافة طالب جديد");
}
}
}
}
也許是因爲單元格驗證在它到達'IsNewRow'時完成' –
來自MSDN文章的引用:「當數據輸入行開始時,行停止成爲新行。數據輸入後,CellValidating事件觸發。所以是的,這是保證是錯誤的。這並不明顯,爲什麼你想這樣做。 DGV還允許編輯現有行中的單元格,但您仍然希望驗證該單元格。 –