Spaltenbreite von Listviews ändert sich ungewollt

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von PrinzMegahertz.

    Spaltenbreite von Listviews ändert sich ungewollt

    Hallo zusammen,

    kämpfe hier gerade mit einem komischen Phänomen:

    Ich habe einen Listview mit 4 Spalten. Die Spalte 3 soll eine Width von 267 haben.
    Wenn ich jetzt mein Programm starte und das Fenster aufrufe, wird die Breite aller Spalten aber auf den Standardwert gesetzt 8| (ich glaube 60 oder so). Kann ich dieses automatische Updaten der Breite beim Laden irgendwie unterbinden?

    Besten Dank und Grüße
    pm
    Hab das Problem jetzt nicht nachstellen können, habe aber folgendes gefunden:

    Wer kennt das nicht: man verwendet das ListView-Control mit mehreren Spalten und möchte die Spaltenbreiten wenn möglich immer optimal an den Inhalt der einzelnen Daten (Zellen) anpassen. Um das zu erreichen braucht man unter VB.NET gar keinen großen Aufwand betreiben. Die Width-Eigenschaft des Columns-Objekts stellt uns genau diese Funktionalität bereits zur Verfügung!

    ' optimale Spaltenbreite
    ListView1.Columns(x).Width = -1
    Durch Setzen der Width-Eigenschaft auf den Wert -1 wird die Spaltenbreite autom. an den längsten Inhalt angepasst. Werden dem Control anschließend neue Einträge hinzugefügt, muss der Width- Eigenschaft erneut der Wert -1 zugewiesen werden, um abermalls die optimale Spaltenbreite einzustellen.

    Ursprung: vbarchiv.net/tipps/tipp_1627-a…listview-control-net.html

    Dort unten ist ein Beispiel, in dem die Spaltenbreite gesetzt wird:

    VB.NET-Quellcode

    1. With ListView1.Columns
    2. .Add("Name")
    3. .Add("Adresse")
    4. .Add("Telefon", 100)
    5. .Add("E-MaiL")
    6. End With


    Machst du deine Spalten so? Wenn nicht, probier das mal aus