Hallo,
ich habe einen eigenartigern Effekt beim Anzeigen von Farben in einem DataGridView.
Es werden die Datensätze angezeigt und die Farben werden dargestellt (Farbe "Hintergrund" [VKFARBE] und Farbe "Schrift" [VKFONT])
Folgender Code funktioniert prima - aber nur beim ersten Aufruf. Der Code steht im Load-Event des Formulars:
Der Vollständigkeit halber hier noch die Funktion cDB.CRECOMM:
Das Formular wird geschlossen und wieder geöffnet. Dann sehe ich keine Farben mehr, sondern die RGB-Werte, also z.B. -1 für weiß oder -16777216 für schwarz.
Folgendes habe ich schon probiert, allerdings ohne Erfolg:
Bin dankbar für jeden Tipp!
Grüße, Schorsch
ich habe einen eigenartigern Effekt beim Anzeigen von Farben in einem DataGridView.
Es werden die Datensätze angezeigt und die Farben werden dargestellt (Farbe "Hintergrund" [VKFARBE] und Farbe "Schrift" [VKFONT])
Folgender Code funktioniert prima - aber nur beim ersten Aufruf. Der Code steht im Load-Event des Formulars:
VB.NET-Quellcode
- Dim intFARBE As Integer = 0
- strPcSQL = "SELECT VKNR, VKNACH, VKVOR, VKFARBE, VKFONT FROM tblVerkauf ORDER BY VKNR;"
- Dim cm As MySqlCommand = cDB.CRECOMM(conFIL, strPcSQL)
- Dim da As New MySqlDataAdapter(cm)
- Dim dt As New DataTable
- da.Fill(dt)
- With dgv01
- .DataSource = dt
- .Columns(0).HeaderText = "VK-Nr."
- .Columns(1).HeaderText = "Name"
- .Columns(2).HeaderText = "Vorname"
- .Columns(3).HeaderText = "Hintergrund"
- .Columns(4).HeaderText = "Schrift"
- End With
- For intROW As Integer = 0 To dgv01.Rows.Count - 1
- If Not dgv01.Rows(intROW).Cells(3) Is DBNull.Value Then
- Dim value As Object = dgv01.Item(3, intROW).Value
- intFARBE = CInt(value)
- dgv01.Rows(intROW).Cells(3).Style.BackColor = Color.FromArgb(intFARBE)
- dgv01.Rows(intROW).Cells(3).Style.ForeColor = Color.FromArgb(intFARBE)
- Dim value2 As Object = dgv01.Item(4, intROW).Value
- intFARBE = CInt(value2)
- dgv01.Rows(intROW).Cells(4).Style.BackColor = Color.FromArgb(intFARBE)
- dgv01.Rows(intROW).Cells(4).Style.ForeColor = Color.FromArgb(intFARBE)
- End If
- Next
- cm.Dispose()
Der Vollständigkeit halber hier noch die Funktion cDB.CRECOMM:
VB.NET-Quellcode
- Public Function CRECOMM(conFIL As MySqlConnection, ByVal commandText As String, ByVal ParamArray values As Object()) As MySqlCommand
- '----------------------------------------------
- ' Erstellen eines Commands mit Parametern
- ' DANKE!!! an den ErfinderDesRades!
- '----------------------------------------------
- Dim cmd = New MySqlCommand()
- Dim paramNames(values.Length - 1) As String
- For i = 0 To values.Length - 1
- paramNames(i) = "@a" & i
- Dim param = cmd.Parameters.AddWithValue(paramNames(i), values(i))
- Next
- cmd.CommandText = String.Format(commandText, paramNames)
- cmd.Connection = conFIL
- Return cmd
- End Function
Das Formular wird geschlossen und wieder geöffnet. Dann sehe ich keine Farben mehr, sondern die RGB-Werte, also z.B. -1 für weiß oder -16777216 für schwarz.
Folgendes habe ich schon probiert, allerdings ohne Erfolg:
Bin dankbar für jeden Tipp!
Grüße, Schorsch