Rubrik: Controls · ImageList | VB-Versionen: VB5, VB6 | 09.02.05 |
Icon-Transparenz mit Reiterkarten-Hintergrundfarbe Icon-Transparenz eines Tab-Symbols in aktueller Farbe des Tabstrips | ||
Autor: Robert Hoffmann | Bewertung: | Views: 15.873 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Manchmal benötigt man bei Verwendung des TabStrip-Controls auch ein Symbol (Icon) zu den einzelnen Reitern. In diesem Fall muss man das Icon Icon in ein ImageList-Control packen und diese diese mit dem Tabstrip verknüpfen. Per Code (oder auch per Eigenschaftenfenster( wird das entsprechende Symbol dann dem Reiter zugewiesen. Doch leider werden transparente Bereiche des Icons im Tabstrip nicht dargestellt, sofern man die MaskColor-Eigenschaft nicht korrekt festlegt. Das bedeutet dann wiederum weiße Bereiche innerhalb des Bildsymbols, die eigentlich transparent sein sollten.
Abhilfe schafft folgenden Vorgehensweise:
- Picturebox, ImageList und TabStrip-Control auf die Form ziehen
- Icon(s) in das ImagheList-Control einfügen
- nachfolgenden Code bspw. ins Form_Load-Ereignis einfügen
Private Sub Form_Load() With Picture1 ' Eigenschaften der "unsichtbaren" PictureBox .Visible = False .AutoRedraw = True .AutoSize = True ' Hintergrundfarbe auf TabStrip-Farbe setzen .BackColor = vbButtonFace ' Bild aus ImageList in PictureBox darstellen .Picture = ImageList1.ListImages(1).ExtractIcon ' Bild aus ImageList löschen und neu einfügen ImageList1.ListImages.Remove 1 ImageList1.ListImages.Add 1, , .Image ' ImageList dem TabStrip-Control zuweisen Set TabStrip1.ImageList = ImageList1 ' Bildsymbol dem Registerreiter zuweisen TabStrip1.Tabs(1).Image = 1 End With End Sub