DataGridView Zeilenfarbe ändern
- VB.NET
- .NET (FX) 4.5–4.8
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 34 Antworten in diesem Thema. Der letzte Beitrag () ist von Kasi.
-
-
Im Designer einfach das DataGridView Control anklicken und in dessen Eigenschaften unter Ereignisse per Doppelklick das gewünschte Event abonnieren."Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."
Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
Wie man VisualStudio nutzt? => VisualStudio richtig nutzen -
OK - Danke.
Habe ich gerade eingebaut. Aber ohne Erfolg.
Es wird keine Zeile angeklickt. Es soll nur eine Ausgabe erfolgen. Farblich unterschieden nach Männlein und Fraulein.
Ab dem zweiten Eintrag passt das, wenn ich Rows.DefaultCellStyle setze. Aber die erste Zeile bleibt weiterhin in der Grundfarbe black. -
Poste mal den Aktuellen Code"Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."
Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
Wie man VisualStudio nutzt? => VisualStudio richtig nutzen -
aktuell, ist noch identisch mit Post 1
VB.NET-Quellcode
- If int_Ges > -1 Then
- For int_l01 = 0 To int_Ges
- r_lng_ID = tg_lng_ID(int_l01)
- r_str_Name = tg_str_Name(int_l01)
- r_str_GebName = tg_str_GebName(int_l01)
- r_str_Vorname = tg_str_Vorname(int_l01)
- r_str_GOrt = tg_str_GOrt(int_l01)
- r_str_GDat_JJ = tg_str_GDat_JJ(int_l01)
- r_str_GDat_MM = tg_str_GDat_MM(int_l01)
- r_str_GDat_TT = tg_str_GDat_TT(int_l01)
- r_str_SDat_JJ = tg_str_SDat_JJ(int_l01)
- r_str_SDat_MM = tg_str_SDat_MM(int_l01)
- r_str_SDat_TT = tg_str_SDat_TT(int_l01)
- r_str_Geschl = tg_str_Geschl(int_l01)
- Call Color_Geschlecht()
- Call Erm_HDat()
- REM *--------------------------------------------*
- REM * Füllen des DataGrids *
- REM *--------------------------------------------*
- With .dgv_Geschwister
- .Rows.Add(r_lng_ID.ToString("####0"), r_str_Name, r_str_GebName, r_str_Vorname, str_HDat1, str_HDat2, str_HDat3, r_str_Geschl)
- .Rows(int_l01).DefaultCellStyle.ForeColor = col_tx_Geschl
- End With
- Next
- End If
-
Wolltest du das nicht über das CellFormatting Event machen? Wo ist der Code dazu?"Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."
Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
Wie man VisualStudio nutzt? => VisualStudio richtig nutzen -
Das mit dem Upload hat leider schon wieder nicht geklappt. die sln-Datei ist im Hauptverzeichnis, obwohl die eins drüber sein sollte (ok, kann ich selber korrigieren), aber im Projekt selber sind Verweise auf die Dateien app.config, Application.myapp, AssemblyInfo.vb, Resources.resx und settings.settings. Nur sind diese Dateien nicht dabei.
Ok, was soll's. Auch wenn's vielleicht größentechnisch übel wird: Nimm bitte Deinen definitiv funktionierenden Projektordner und zippe ihn. Nix vorher aufräumen, rauslöschen oder bereinigen.Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln. -
Normen schrieb:
aktuell, ist noch identisch mit Post 1
das Formatieren(.Rows(int_l01).DefaultCellStyle.ForeColor = col_tx_Geschl) beim Laden musst du entfernen
das Formatieren soll ja hier stattfinden
VB.NET-Quellcode
- Private Sub DataGridView1_CellFormatting(sender As Object, e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
- If Not DataGridView1.Rows(e.RowIndex).IsNewRow Then
- Dim RowColor As Color
- Select Case DataGridView1.Rows(e.RowIndex).Cells(2).Value
- Case "W"
- RowColor = Color.Red
- Case "M"
- RowColor = Color.Blue
- Case ""
- RowColor = Color.Green
- Case Else
- RowColor = Color.Black
- End Select
- DataGridView1.Rows(e.RowIndex).DefaultCellStyle.ForeColor = RowColor
- End If
- End Sub
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Kasi“ ()
-
Das Formatting funktioniert auch nicht. Code siehe nachstehend. Meine Zeile
...rows(int_l01) habe ich stillgelegt.
VB.NET-Quellcode
- Private Sub Dgv_Geschwister_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles dgv_Geschwister.CellFormatting
- With Me.dgv_Geschwister
- If Not .Rows(e.RowIndex).IsNewRow Then
- Dim RowColor As Color
- Select Case .Rows(e.RowIndex).Cells(7).Value
- Case "F"
- RowColor = Color.Red
- Case "M"
- RowColor = Color.Blue
- Case ""
- RowColor = Color.Green
- Case Else
- RowColor = Color.Black
- End Select
- .Rows(e.RowIndex).DefaultCellStyle.ForeColor = RowColor
- End If
- End With
- End Sub
Das Ergebnis ist gleich, d.h. erste Zeile ist black statt blueDieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Normen“ ()
-
1. wie geschrieben: bitte nochmal ohne Bereinigung gezippt hochladen, weil auch der Upload in Post#19 nicht funktionsfähig ist
2. Wie sieht es aus, wenn Du in dem DGV nach dem fehlerhaften Einfärben die 2. Zeile anklickst/auswählst?
3. Wie sieht es aus, wenn Du in der Datei cls_10_Mask_01.vb die Zeilen#97 und #99 auskommenstierst, also deaktivierst:
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln. -
-
Ich glaub ich geb es auf. Nun kann ich zwar das Projekt laden, aber da so viele Codestellen eine vorhandene Access-Datenbankdatei voraussetzen, dass es ohne nur zu Crashs kommt, ist dieser Weg sinnlos.
Normen schrieb:
Wenn ich die 2. Zeile anklicke, wird wunschgemäß die Sicht geändert. Nun erscheint die 2. Zeile in schwarz.
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln. -
-
Wenn das DGV nur zur Anzeige dienen soll, dann stell Enabled auf False und lösche die Selektion, wie in Post#32 beschrieben. Dann sind die Farben korrekt. Denn das hast Du effektiv in Post#31 bestätigt. Wenn man aber im DGV irgendwelche Zellen anklicken können soll, muss der User ja wissen, wo er sich gerade befindet. Eine Farbmarkierung irgendeiner Art muss daher dann vorhanden sein. Das ist bei Dir eben Text-komplett-schwarz, v.a. wenn Du SelectionMode auf FullRowSelect hast. Daher musst Du Dich entscheiden: Alles schön, aber ohne Auswahlmöglichkeit oder Auswahlmöglichkeit, aber mit Farbmarkierung.
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.
Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln. -
hab dein Projekt mir angesehen,
du hast in der Form NM_Ahnen versucht unter "_CellContentClick_1"
VB.NET-Quellcode
- Private Sub Dgv_Geschwister_CellContentClick_1(sender As Object, e As DataGridViewCellEventArgs) Handles dgv_Geschwister.CellContentClick
- With Me.dgv_Geschwister
- If Not .Rows(e.RowIndex).IsNewRow Then
- Dim RowColor As Color
- Select Case .Rows(e.RowIndex).Cells(7).Value
- Case "F"
- RowColor = Color.Red
- Case "M"
- RowColor = Color.Blue
- Case ""
- RowColor = Color.Green
- Case Else
- RowColor = Color.Black
- End Select
- .Rows(e.RowIndex).DefaultCellStyle.ForeColor = RowColor
- End If
- End With
- End Sub
sollte doch unter
oder habe ich jetzt die falsche Form, ohne DB kann ich leider nicht testen
-
Benutzer online 1
1 Besucher
-
Ähnliche Themen
-
5 Benutzer haben hier geschrieben
- Normen (14)
- VaporiZed (11)
- mrMo (5)
- Kasi (4)
- RodFromGermany (1)