DataRow.SetColumnError(Int32,String)忽略Int32值并始终使用零

时间:2013-06-19 09:38:43

标签: vb.net visual-studio-2010 datagridview

好的,这是我的头脑。我在一个有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

1 个答案:

答案 0 :(得分:0)

我不确定,但我认为列的编号必须是“DataColumn”类型。