Rahmen um ausgewählte Zeile bei Datagridview bei FullRowSelect

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von mox.

    Rahmen um ausgewählte Zeile bei Datagridview bei FullRowSelect

    Meine Datagridview besteht aus verschiedenen Zellenfarben und ich habe die FullRowSelect gewählt. Problem ist aber, das wenn ich eine ausgewählte Zeile habe, das die Farben überschrieben werden bzw. nicht mehr sichtbar sind.

    Das habe ich dann durch folgenden Code gelöst.

    VB.NET-Quellcode

    1. With DataGridView1
    2. .SelectionMode = DataGridViewSelectionMode.FullRowSelect
    3. .DefaultCellStyle.SelectionBackColor = Color.Transparent
    4. .DefaultCellStyle.SelectionForeColor = Color.Blue
    5. End With


    Problem ist aber, das es dann nicht so deutlich in der Darstellung ist. Ich hätte gerne noch einen zusätzlichen Rahmen, wie dieses Bild anzeigt. Wie kann man das erreichen?

    In Moment sieht es so aus:


    Ich möchte es gerne in Zukunft mit Rahmen haben wie in der Weise mit schwarzem Rahmen.



    Hat da jemand vielleicht eine Idee?

    VB.NET-Quellcode

    1. Private Sub DataGridView1_RowPostPaint(sender As Object, e As DataGridViewRowPostPaintEventArgs) Handles DataGridView1.RowPostPaint
    2. DataGridView1.DefaultCellStyle.SelectionBackColor = Color.Transparent
    3. DataGridView1.DefaultCellStyle.SelectionForeColor = Color.Black
    4. Dim newpen As Pen = New Pen(Brushes.Crimson, 6)
    5. If DataGridView1.Rows(e.RowIndex).Selected Then
    6. e.Graphics.DrawRectangle(newpen, e.RowBounds.Left, e.RowBounds.Top, e.RowBounds.Width, e.RowBounds.Height - 1)
    7. End If
    8. End Sub


    musst du bischen anpassen.
    Hier könnte meine Signatur stehen.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „mox“ ()