-1

次のコードを使用して、データグリッドビューのセル値の色を問題なく変更し、それを新しいプロジェクトに転送し、プロジェクトを別のサーバーに接続しました。そして、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーがスローされています..何が欠けていますか??

GridViewTextBoxColumn1 から動作し、GridViewTextBoxColumn2 に移動し、デバッガーが次のようなエラーをスローし始めるまで機能します。値を Datetime 型に変換できない、オブジェクト参照が設定されていないなど。

 Private Sub TableGrid_CellFormatting(ByVal sender As Object, ByVal e As DataGridViewCellFormattingEventArgs) Handles TableGrid.CellFormatting

    For i As Integer = Nothing To Me.TableGrid.Rows.Count - 1
        If Me.TableGrid.Rows(i).Cells("GridViewTextBoxColumn1").Value <= 0 Then
            Me.TableGrid.Rows(i).Cells("GridViewTextBoxColumn1").Style.ForeColor = Color.Red
        End If
    Next
    For j As Integer = Nothing To Me.TableGrid.Rows.Count - 1
        If Me.TableGrid.Rows(j).Cells("GridViewTextBoxColumn2").Value.ToString = "S" Then
            Me.TableGrid.Rows(j).Cells("GridViewTextBoxColumn2").Style.ForeColor = Color.Blue
        End If
    Next

    For k As Integer = Nothing To Me.TableGrid.Rows.Count - 1
        If Me.TableGrid.Rows(k).Cells("GridViewTextBoxColumn3").Value.ToString = "Z" Then
            Me.TableGrid.Rows(k).Cells("GridViewTextBoxColumn3").Style.ForeColor = Color.Blue
        End If
    Next

End Sub
4

3 に答える 3

0

Usually this error occurs when trying to reference an object that has not had anything assigned to it yet so make sure your datagrid cells actually have values in them.

于 2013-02-18T16:41:37.460 に答える
0

私自身の質問に役立つ解決策を見つけました..しかし、より良い答えがあるはずです。

最初の質問のコードは、一部のセルに存在する null 値をテストしていませんでした。したがって、エラー..

For i As Integer = 0 To Me.TableGrid.Rows.Count - 1
If Not Me.TableGrid.Rows(i).Cells("DataGridViewTextBoxColumn1").Value Is DBNull.Value Then
If Me.TableGrid.Rows(i).Cells("DataGridViewTextBoxColumn1").Value = "Z" Then
Me.TableGrid.Rows(i).Cells("DataGridViewTextBoxColumn1").Style.ForeColor = Color.Blue
End If
End If

        If Not Me.TableGrid.Rows(i).Cells("DataGridViewTextBoxColumn2").Value Is DBNull.Value Then
            If Me.TableGrid.Rows(i).Cells("DataGridViewTextBoxColumn2").Value <0 Then
                Me.TableGrid.Rows(i).Cells("DataGridViewTextBoxColumn2").Style.ForeColor = Color.Red
            End If
        End If
于 2013-02-16T10:09:47.023 に答える
0

通常、この例外がスローされたときに「New」が必要になるため、「Dim yourobject As New Yourtype」を試してください。

于 2013-02-20T05:53:10.983 に答える