好的,这是我的头脑。我在一个有20列的DataRow对象上调用SetColumnError(),但无论我使用哪个ColumnIndex,都会在第0列设置错误文本。MSDN documentation很明显,错误文本应该在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
答案 0 :(得分:0)
我不确定,但我认为列的编号必须是“DataColumn”类型。