text kleur veranderen in datagridview

Status
Niet open voor verdere reacties.

mustangBE

Gebruiker
Lid geworden
2 jun 2007
Berichten
349
hallo

ik heb een datagrid met verschillende kolommen.
als ik in kolom "kleur" een waar zet vb : blue dan wil ik dat heel de rij een blauwe text kleur krijgt.

ik heb volgende code
Code:
Private Sub CataloogDataGridView_CellValueChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles CataloogDataGridView.CellValueChanged
        Dim NRow As New DataGridViewRow
        For Each NRow In Me.CataloogDataGridView.Rows
            If CType(NRow.Cells(1).Value(), Boolean) = 1 Then
                NRow.DefaultCellStyle.ForeColor = Color.Blue
            Else
                NRow.DefaultCellStyle.ForeColor = Color.Yellow
            End If
        Next
    End Sub

als ik in kolom 1 een waarde zet is er geen probleem.
maar als ik kolom 1 leeg laat kan ik nergens anders iets ingeven , krijg dan error (De conversie van type DBNull naar type Boolean is ongeldig.)

en de code werkt maar half , eender wat ik invul , de text wordt altijd geel.


wat doe ik verkeerd ?
 
Een NULL waarde betekent dat er niets is ingevuld. Dit is dus niet hetzelfde als false. Je probeert dus NULL naar een Boolean te casten, en da's niet mogelijk. Je kunt dit op verschillende manieren afvangen, bijvoorbeeld met de functie
Code:
IsNull()
of
Code:
is dbnull.value
 
hallo ,

zou je dit een beetje kunnen verduidelijken.
mijn kennis van VB is vrij beperkt , sorry

of zou je het in mijn code kunnen aanpassen

Code:
Private Sub CataloogDataGridView_CellValueChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles CataloogDataGridView.CellValueChanged
        Dim NRow As New DataGridViewRow
        For Each NRow In Me.CataloogDataGridView.Rows
            If CType(NRow.Cells(1).Value(), Boolean) = 1 Then
                NRow.DefaultCellStyle.ForeColor = Color.Blue
            Else
                NRow.DefaultCellStyle.ForeColor = Color.Yellow
            End If
        Next
    End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan