TListView Columns unsichtbar machen



  • Hallo,

    ich hoffe einige von euch haben keinen Hals auf mich oder ähnliches, ich hab leider keine andere kompetente Anlaufstelle als dieses super Forum hier.
    Deshalb bitte ich euch um euer Verständnis, wenn ich manchmal "einfache" Sachen Frage.

    Meine Frage.

    Das Problemkind ist TListView.

    würde gerne zur Laufzeit, einzelne Columns auf Visible=false setzten.

    Habe das wie folgt versucht:

    ListView1->Columns[1]->Visible=false;
    

    funktioniert leider nicht.

    Wisst ihr wie ich einzelne Columns zur Laufzeit unsichtbar machen?



  • Leider hat TListView keine direkte Möglichkeit ein Column zu verbergen.
    Das einzige was man ohne viel Aufwand tun kann ist die Column breite auf 0 zu setzen.

    lvScreens->Columns->Items[1]->Width = 0;
    

    was aber den Benutzer nicht daran hintert es wieder zu vergrößern.



  • VergissEs schrieb:

    Leider hat TListView keine direkte Möglichkeit ein Column zu verbergen.
    Das einzige was man ohne viel Aufwand tun kann ist die Column breite auf 0 zu setzen.

    lvScreens->Columns->Items[1]->Width = 0;
    

    was aber den Benutzer nicht daran hintert es wieder zu vergrößern.

    Habs getestet!

    Wenn die Columns die man unsichtbar machen möchte am Ende sind, so hat der Benutzer auch keine Möglichkeit diese zu ändern/einzusehen.

    Klasse, danke für dein Post!

    Edit
    Doch nicht! Hab mich zufrüh gefreut.

    Gibt es keine Möglichkeit, da festzulegen das die Columns in ihrer Größe gefixt sind!



  • Hallo

    Wenn du wirklich eine nicht sichtbare Spalte haben willst, must du diese mitsamt Daten aus dem TLIstView entfernen. So ähnlich wie beim Windows Explorer (Menü Ansicht/Spalten auswählen). Eine solche Logik ist aber im TListView nicht enthalten und muß von dir implementiert werden.

    bis bald
    akari



  • VergissEs schrieb:

    Leider hat TListView keine direkte Möglichkeit ein Column zu verbergen.
    Das einzige was man ohne viel Aufwand tun kann ist die Column breite auf 0 zu setzen.

    lvScreens->Columns->Items[1]->Width = 0;
    

    was aber den Benutzer nicht daran hintert es wieder zu vergrößern.

    Morchn,

    versuchs mal mit

    lvScreens->Columns->Items[1]->MaxWidth = 0;
    

    oder die ListView jedesmal neu aufbauen, immer nur mit den benötigten Columns.

    grüssle 🙂


Anmelden zum Antworten