tablelayoutpanel: einzelne Zeilen einfärben?

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    tablelayoutpanel: einzelne Zeilen einfärben?

    Hallo,

    ich habe ein Formular, in welchem ich die einzelnen Controls in einer Tabelle angeordnet habe. Für die Übersichtlichkeit würde ich gerne jede zweite Zeile der Tabelle einfärben, was mir leider bisher nicht gelunden ist.

    (Wie) kann man in einem tablelayoutpanel die backgroundcolor einer Zeile festlegen?

    Gruß

    Zerberus
    ich vermute am sinnvollsten wäre es in diesem Kontext wenn man dies im PaintEvent regelt, in etwa so (sicherlich ausbaufähig, nur als Beispiel):

    VB.NET-Quellcode

    1. Private Sub table(sender As Object, e As TableLayoutCellPaintEventArgs) Handles TableLayoutPanel1.CellPaint
    2. Select Case e.Row
    3. Case 0
    4. e.Graphics.FillRectangle(New SolidBrush(Color.Purple), e.CellBounds)
    5. Case 1
    6. e.Graphics.FillRectangle(New SolidBrush(Color.Red), e.CellBounds)
    7. Case 2
    8. e.Graphics.FillRectangle(New SolidBrush(Color.Purple), e.CellBounds)
    9. Case 3
    10. e.Graphics.FillRectangle(New SolidBrush(Color.Red), e.CellBounds)
    11. Case 4
    12. e.Graphics.FillRectangle(New SolidBrush(Color.Purple), e.CellBounds)
    13. Case 5
    14. e.Graphics.FillRectangle(New SolidBrush(Color.Red), e.CellBounds)
    15. End Select
    16. End Sub


    Edit:

    oder etwas dynamischer ^^ :

    VB.NET-Quellcode

    1. Private Sub table(sender As Object, e As TableLayoutCellPaintEventArgs) Handles TableLayoutPanel1.CellPaint
    2. Select Case e.Row Mod 2
    3. Case 0
    4. e.Graphics.FillRectangle(New SolidBrush(Color.Purple), e.CellBounds)
    5. Case Else
    6. e.Graphics.FillRectangle(New SolidBrush(Color.Red), e.CellBounds)
    7. End Select
    8. End Sub

    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „asusdk“ ()

    @Zerberus Oder Du packst in jede Zelle ein Panel mit Dock = Fill und kannst da machen was immer Du Lust hast, ohne Event.
    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!