TabReiter mit zusätzlichen Grafikelementen

  • VB.NET

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

    TabReiter mit zusätzlichen Grafikelementen

    Hallo VB-Forum,

    ich habe eine Frage zur Verwendung von Tabpages in VB2010.
    - Ist es möglich im Tabreiter in dem klassisch ein Schlagwort oder ein sonstiges Wort steht
    diesem ein einfaches grafisches Symbol hinzu zufügen ?
    -- Im Anhang ein Beispiel auf dem ich einen Reitertext mit einem roten Punkt ergänzt habe.

    Vielen Dank für eine Tip
    Jürgen.
    Edit by ~blaze~:
    *Thema verschoben*
    Bilder
    • Info Tabreiter 1.jpg

      84,22 kB, 1.650×908, 96 mal angesehen

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

    Vorgesehen ist das nicht, wohl aber möglich, mit OwnerDrawing.
    Aber nicht einfach, und evtl. auch nicht sehr schön, denn vmtl. willst du auch die Breite des Reiters vergrößern.
    Das ist zwar auch möglich, nämlich indem du sie fix vorgibst, mit dem Nachteil, dass sich die Reiter-Breite dann nicht mehr automatisch an den Reiter-Text anpasst.

    OwnerDrawing ist dir ein Begriff?
    @ErfinderDesRades Na aber.
    @kilampi Kein Problem.
    Mach Dir eine ImageList mit allen vorkommenden Bildern und weise jedem Tab per Property .ImageIndex den Index in der ImageList zu, welches Bild angezeigt werden soll.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim ImageList1 As New ImageList
    3. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. Me.ImageList1.Images.Add(My.Resources.AmpelRed) ' die darzustellenden Bilder
    5. Me.ImageList1.Images.Add(My.Resources.AmpelYellow)
    6. Me.ImageList1.Images.Add(My.Resources.AmpelGreen)
    7. Me.ImageList1.TransparentColor = Color.White ' transparente Farbe
    8. Me.ImageList1.ImageSize = New Size(16, 16) ' Bildgröße
    9. Me.TabControl1.ImageList = Me.ImageList1
    10. End Sub
    11. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    12. Me.TabControl1.TabPages(0).ImageIndex = 0 ' Bilder zuweisen
    13. Me.TabControl1.TabPages(1).ImageIndex = 1
    14. Me.TabControl1.TabPages(2).ImageIndex = 2
    15. End Sub
    16. End Class

    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!
    ou - cool!

    Man kanns übrigens komplett im Designer gestalten - sind alles Properties, die im PropertyGrid des FormDesigners zu bearbeiten sind:
    Also Imagelist aufs Form ziehen, Images hinzufügen, die Imagelist dem TabControl zuweisen, den TabPages ImageIndizees zuweisen - Designer-Arbeit eben.

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

    ErfinderDesRades schrieb:

    komplett im Designer gestalten
    Jou.
    In diesem Falle hab ich da variabele Zustände drin, die Bilder werden vorab berechnet und dynamisch zugewiesen.
    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!
    Hallo,

    vielen Dank für Eure Antworten.
    OwnerDrawing ist mir noch unbekannt. Wie steig ich da am besten ein ?

    - Der Vorschlag mit der ImageList Vorgehensweise erscheint mir eine smarte Lösung. Ich habs jetzt noch nicht für mich ausprobiert.
    Wenn es nach wie vor möglich ist, den obligatorischen Reitertext um eben jenem besagtem Image zu ergänzen, bin ich mal gespannt welche Möglichkeiten sich da ergeben.

    Gruß
    Jürgen

    kilampi schrieb:

    OwnerDrawing
    brauchst Du nicht zur Lösug Deines Problems, dazu reicht mein Snippet.
    Erstell ein Projekt mit nem Button und nem TabControl, füge diesem per Ressource 3 Bilder mit den Namen AmpelRed, AmpelYellow, AmpelGreen ninzu, kopiere meinen Code da rein und feddich.
    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!
    Hallo,

    die smarte Image-Lösung habe ich in meinem Programm mal getestet. Geht echt gut.
    Ich denke damit komme ich zurecht.
    Ich werde aber zusätzlich versuchen die "Images" klassisch aus einem "von Hand erstellten" Pfad zunächst bei Programmstart zu laden um sie dann
    nachfolgend entsprechend zu verwenden.

    Nochmal vielen Dank
    Jürgen