Listbox angeklickte Einträge farbig markieren

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Goof.

    Hallo,

    ich verstehe deine Frage nicht ganz.

    Wenn du einen Eintrag in einer ListBox auswählst wird er doch schon standardmäßig blau hervorgehoben.


    Willst du eventuell mehrere Einträge gleichzeitig auswählen?
    Dann stelle die Eigenschaft ​SelectionMode auf Multi oder Extended.

    Viele Grüße
    Florian
    ----

    WebApps mit C#: Blazor
    Hallo,

    es geht im glaube ich nicht um die Selektionsfarbe, sondern darum, dass Einträge die er einmal markiert wurden, in eine andere Farbe gemacht werden.

    Viele Grüße
    Florian
    ----

    WebApps mit C#: Blazor
    Ich verstehe den Sinn zwar auch nicht, habe das aber mal mit einem DataGridView umgesetzt

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. DataGridView1.Rows.Add("Test 123 Datum: " + Date.Now.ToString()) 'füge hier deine Einträge hinzu
    4. DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
    5. End Sub
    6. Private Sub DataGridView1_SelectionChanged(sender As Object, e As EventArgs) Handles DataGridView1.SelectionChanged
    7. Try
    8. Dim actualRow As DataGridViewRow = DataGridView1.SelectedRows.Item(0)
    9. Dim style As New DataGridViewCellStyle()
    10. style.BackColor = Color.Blue 'Deine Hintergrundfarbe (kannst auch andere einstellungen wie Schriftfarbe, Fett, Kursiv machen)
    11. actualRow.DefaultCellStyle = style
    12. Catch ex As Exception
    13. End Try
    14. End Sub
    15. End Class


    Das funktioniert bei mir.

    War das das, was du wolltest?

    Viele Grüße
    Florian
    ----

    WebApps mit C#: Blazor
    @Goof Möchtest Du die vorhandene Selektionsfarbe (blau) durch Deine Selektionsfarbe grün ersetzen?
    Gugst Du stackoverflow.com/questions/36…election-background-color
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Habe es selber gefunden. Danke für Eure Hilfe

    Quellcode

    1. Private Sub ListBox1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ListBox1.DrawItem
    2. If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
    3. e.Graphics.FillRectangle(Brushes.LightGreen, e.Bounds)
    4. End If
    5. Using b As New SolidBrush(e.ForeColor)
    6. e.Graphics.DrawString(ListBox1.GetItemText(ListBox1.Items(e.Index)), e.Font, b, e.Bounds)
    7. End Using
    8. e.DrawFocusRectangle()
    9. End Sub