好吧,這是我的目標。我對具有20列的DataRow對象調用SetColumnError(),但無論使用哪個ColumnIndex它在列0上設置錯誤文本。MSDN documentation清楚地表明錯誤文本應該設置在ColumnIndex提供的列上。我試圖設置錯誤文本列1和2(我通常使用常量時,這樣做,我剛纔在這個示例代碼中使用整數爲簡單起見)。爲什麼錯誤文本出現在第0列,以及我應該如何讓文本顯示在第1列和第2列?我沒有收到IndexOutOfRangeException。DataRow.SetColumnError(Int32,String)忽略Int32值並始終使用零
這是我遇到的代碼。
Public Sub ValidateRows()
For Each dgvRow As DataGridViewRow In Me.DataGridView1.Rows
If dgvRow.DataBoundItem IsNot Nothing Then
Dim rowView As DataRowView = dgvRow.DataBoundItem
Dim rowData As MyDataSet.DocumentRow = rowView.Row
rowData.ClearErrors()
If rowData.Revision = rowData.Revision_old Then
rowData.SetColumnError(1, "You must change the revision")
End If
If rowData.InternalRevision = rowData.InternalRevision_old Then
rowData.SetColumnError(2, "You must change the internal revision")
End If
End If
Next
End Sub
我開始認爲它與來自處理DataGridView.CellFormatting事件的基類的干擾有關。 –