以前的測試的時候使用正常,當輸入數據無效時,行標題上會出現紅色感嘆號的圓形圖標,最近拿起來適當修改完善了一下,發現ErrorText屬性的設置失效了,行標題上死活都不出現紅色感嘆號的圓形圖標,奇了怪了,怎麼回事,搜遍全網(包括官網),沒找到解決方案。 我就不信這個鞋,幸好有備份的之前的版本,拿過來和 ...
private void dgvView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
if (e.ColumnIndex == 0 && !dgvView.CurrentRow.IsNewRow) //判斷第一列主鍵列是否空值(排除新增行)
{
if (string.IsNullOrEmpty(e.FormattedValue.ToString()))
{
dgvView.Rows[e.RowIndex].ErrorText = "主鍵列值不能為空"; //行的ErrorText不生效
e.Cancel = true; //要求再次修改,仍為編輯模式,不退出過程,程式繼續往下執行
}
}
if (dgvView.Columns[e.ColumnIndex].Name == "contactName" && string.IsNullOrEmpty(e.FormattedValue.ToString()))
{
dgvView.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = "contactName沒有錄入"; //單元格的ErrorText生效了
}
}
以前的測試的時候使用正常,當輸入數據無效時,行標題上會出現紅色感嘆號的圓形圖標,最近拿起來適當修改完善了一下,發現ErrorText屬性的設置失效了,行標題上死活都不出現紅色感嘆號的圓形圖標,奇了怪了,怎麼回事,搜遍全網(包括官網),沒找到解決方案。
我就不信這個鞋,幸好有備份的之前的版本,拿過來和修改後的來個一一比對,半個小時後終於找到了,能氣死個人,經測試,關鍵就是這一句:
dataGridView1.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.None;
DataGridViewAutoSizeRowsMode必須是None時,才會出現ErrorText屬性的錯誤提示圖標,My God,巨硬可恥,這麼關鍵的設置也不在官網上特別註明一下,難道是一個Bug?