ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 10.01.2003

Diese Seite wurde zuletzt aktualisiert am 10.01.2003
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Zeilen im Farbwechsel

Zurück...


Anzeige

(-hg) mailto:hg_lvwaltlinesbackground@aboutvb.de

Tabellen sind viel leichter zu lesen, wenn die Zeilen farblich voneinander abgesetzt werden. Beim ListView-Steuerelement aus den Microsoft Common Controls können Sie jedoch nur die Schriftfarbe einer Zeile (Eigenschaft ForeColor bei ListItems und ListSubItems) festlegen, nicht jedoch die Hintergrundfarbe.

Tabellen sind viel leichter zu lesen, wenn die Zeilen farblich voneinander abgesetzt werden

Tabellen sind viel leichter zu lesen, wenn die Zeilen farblich voneinander abgesetzt werden

Einen Ausweg bietet ab der Version 6 der Microsoft Common Controls die Picture-Eigenschaft des ListViews. Dieser Eigenschaft können Sie ein Hintergrundbild zuweisen, das die gewünschten Einfärbungen der Zeilen enthält. Das Bild braucht lediglich zwei Zeilen hoch (eine Zeile in der Hintergrundfarbe, eine Zeile in der alternativen Farbe) und wenige Pixels breit zu sein, wenn Sie die Eigenschaft PictureAlignment auf "5 - lvwTile" einstellen. Das Bild wird dann automatisch gekachelt und füllt so den gesamten Hintergrund aus. Das ListView sorgt selbst dafür, dass das Bild mitrollt, wenn die Zeilen horizontal oder vertikal gerollt werden. Auch wenn ListItems hinzugefügt oder entfernt werden bleibt die Zeileneinfärbung korrekt erhalten.

Allerdings wäre es recht umständlich, wenn Sie das Hintergrundbild selbst in einem Grafik-Programm erstellen müssten. Denn da die Zeilenhöhe von der Schriftgröße und von der Symbolgröße abhängt, müssten Sie nicht nur jedes Mal ein neues Bild erstellen, wenn sich diese Größen ändern, sondern Sie bräuchten auch noch verschiedene Bilder für die verschiedensten Kombinationen von Hintergrund- und Vordergrundfarbe.

Mit Hilfe einer PictureBox und der folgenden Hilfsfunktion können Sie jedoch die Erstellung des Hintergrundbildes automatisieren.

Sie übergeben der Funktion das betreffende ListView und die PictureBox. Als die eine der beiden Zeilenfarben wird die Hintergrundfarbe des ListViews übernommen. Die andere Zeilenfarbe können Sie als Hintergrundfarbe der PictureBox festlegen oder im letzten optionalen Parameter AltLineBackColor separat angeben. Übergeben Sie im vorletzten, ebenfalls optionalen Parameter BackColorFirst den Wert True, wird die erste Zeile in der Hintergrundfarbe dargestellt. Lassen Sie ihn weg oder übergeben Sie False, wird die erste Zeile in der alternativen Farbe dargestellt.

Die Funktion ist allerdings darauf angewiesen, dass das ListView mindestens ein Element enthält, damit die tatsächliche Zeilenhöhe ermittelt werden kann. Ist das ListView leer, wird kein Hintergrundbild zugewiesen und ein gegebenenfalls vorhandenes Hintergrundbild wird gelöscht. Anderenfalls gibt sie das neu angelegte Hintergrundbild zurück, das sie in einer Variablen ablegen und der Picture-Eigenschaft des ListViews erneut zuweisen können, wenn nach einem Leeren des ListViews wieder neue Elemente eingefügt werden.

Ändern Sie die Schriftgröße oder die Symbolgröße müssen Sie die Funktion wegen der bereits erwähnten Abhängigkeit der Zeilenhöhe erneut aufrufen.

Public Function LvwAltLinesBackground(ListView As ListView, _
 PictureBox As PictureBox, Optional ByVal BackColorFirst As Boolean, _
 Optional ByVal AltLineBackColor As OLE_COLOR = -1) As StdPicture

  Dim nHeight As Single
  Dim nScaleWidth As Single
  Dim nAltLineBackColor As OLE_COLOR
  
  With ListView
    If .View = lvwReport Then
      If .ListItems.Count Then
        .PictureAlignment = lvwTile
        nHeight = .ListItems(1).Height
        With PictureBox
          .Visible = False
          .Cls
          If AltLineBackColor = -1 Then
            nAltLineBackColor = .BackColor
          Else
            nAltLineBackColor = AltLineBackColor
          End If
          .BackColor = ListView.BackColor
          .BorderStyle = 0
          .Height = nHeight * 2
          .Width = 10 * Screen.TwipsPerPixelX
          nScaleWidth = .ScaleWidth
          .AutoRedraw = True
          If BackColorFirst Then
            PictureBox.Line (0, nHeight)-Step(nScaleWidth, nHeight), _
             nAltLineBackColor, BF
          Else
            PictureBox.Line (0, 0)-Step(nScaleWidth, _
             nHeight - Screen.TwipsPerPixelY), _
             nAltLineBackColor, BF
          End If
          Set ListView.Picture = Nothing
          Set ListView.Picture = .Image
          Set LvwAltLinesBackground = .Image
          .AutoRedraw = False
          If AltLineBackColor = -1 Then
            .BackColor = nAltLineBackColor
          End If
        End With
        .Refresh
        Exit Function
      End If
    End If
    Set .Picture = Nothing
  End With
End Function

Beispiel-Projekt und Modul modLvwAltLinesBackground (lvwaltlinesbackground.zip - ca. 4,1 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche




Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer