Dieses Beispiel demonstriert, wie sich die Spaltenbreiten eines ListView-Steuerelements speichern und dann z.B. beim Laden der Form wiederherstellen lassen. Die einzelnen Spaltenbreiten werden hierbei als Gesamtstring durch Semikolon voneinander getrennt in einer INI-Datei gespeichert bzw. aus der INI-Datei gelesen. Nachfolgenden Code am besten in ein Modul "packen" Option Explicit ' zunächst die benötigten API-Deklarationen (INI) Private Declare Function WritePrivateProfileString Lib "kernel32" _ Alias "WritePrivateProfileStringA" ( _ ByVal lpApplicationName As String, _ ByVal lpKeyName As Any, _ ByVal lpString As Any, _ ByVal lpFileName As String) As Long Private Declare Function GetPrivateProfileString Lib "kernel32" _ Alias "GetPrivateProfileStringA" ( _ ByVal lpApplicationName As String, _ ByVal lpKeyName As Any, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String) As Long ' String aus INI lesen Public Function GetIniString(ByVal Sektion As String, _ ByVal Titel As String, ByVal Vorgabe As String, _ ByVal INIFile As String) As String Dim Result As Long Dim Dummy As String Dummy = Space$(256) Result = GetPrivateProfileString(Sektion, Titel, _ Vorgabe, Dummy, 255, INIFile) GetIniString = Left$(Dummy, Result) End Function ' String in INI speichern Public Sub WriteIniString(ByVal Sektion As String, _ ByVal Titel As String, ByVal sText As String, _ ByVal INIFile As String) WritePrivateProfileString Sektion, Titel, sText, _ INIFile End Sub ' ListView-Spaltenbreiten speichern Public Sub SaveColumnWidth(ListView As ListView, _ ByVal Sektion As String, ByVal Text As String, _ ByVal INIFile As String) Dim I As Integer Dim Dummy As String Dim ColWid As String Dummy = "" With ListView For I = 1 To .ColumnHeaders.Count ColWid = CStr(.ColumnHeaders(I).Width) Dummy = Dummy + ColWid + ";" Next I End With If Right$(Dummy, 1) = ";" Then _ Dummy = Left$(Dummy, Len(Dummy) - 1) WriteIniString Sektion, Text, Dummy, INIFile End Sub ' ListView-Spaltenbreiten lesen + setzen Public Sub ReadColumnWidth(ListView As ListView, _ ByVal Sektion As String, ByVal Text As String, _ ByVal INIFile As String) Dim I As Integer Dim Dummy As String Dim ColWid As String Dummy = GetIniString(Sektion, Text, "", INIFile) If Dummy <> "" Then With ListView For I = 1 To .ColumnHeaders.Count If Dummy = "" Then Exit For ColWid = sSplit(Dummy, ";") .ColumnHeaders(I).Width = ColWid Next I End With End If End Sub ' Hilfsroutine: String bis Trennzeichen zurückgeben ' und gleichzeitig Originalstring am Trennzeichen links ' abschneiden Public Function sSplit(sText As String, _ Optional ByVal Trenn As Variant) As String Dim sPos As Long ' Ist kein Trennzeichen angegeben: vbTab If IsMissing(Trenn) Then Trenn = vbTab sPos = InStr(sText, Trenn) If sPos > 0 Then sSplit = Left$(sText, sPos - 1) sText = Mid$(sText, sPos + 1) Else sSplit = sText: sText = "" End If End Function Beispiel für den Aufruf Option explicit Dim INIFile As String Private Sub Form_Load() ' INI-Datei im Programmverzeichnis INIFile = App.Path & "\setup.ini" ' Spaltenbreiten lesen + setzen ReadColumnWidth ListView1, "Test", "Spaltenbreite", _ INIFile End Sub Private Sub Form_Unload(Cancel As Integer) ' Spaltenbreiten speichern SaveColumnWidth ListView1, "Test", "Spaltenbreite", _ INIFile End Sub Dieser Tipp wurde bereits 14.480 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevPopUp 2.0 Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |