好的,这是我的头脑。我在有 20 列的 DataRow 对象上调用 SetColumnError(),但无论我使用哪个 ColumnIndex,它都会在第 0 列设置错误文本。MSDN文档清楚地表明应该在 ColumnIndex 提供的列上设置错误文本。
我正在尝试在第 1 列和第 2 列上设置错误文本(我通常在执行此操作时使用常量,为简单起见,我只是在此示例代码中使用了整数)。为什么错误文本出现在第 0 列,我应该怎么做才能让文本显示在第 1 列和第 2 列?我没有收到 IndexOutOfRangeException。
这是我遇到问题的代码。
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