ListView nach Columns.Add keine Scrollbalken

tecla

Erfahrenes Mitglied
Hallo Forum

Ich habe ein Problem mit einem ListView-Steuerelement:

Wenn ich der ListView per Code neue Columns hinzufüge, erscheint der Scrollbalken nicht automatisch, obwohl die Breite nicht ausreicht. Erst wenn ich ein bisschen am Fenster zupfe (oder eine Column per Code entferne), erscheinen die Scrollbalken.
Die Eigenschaft Scrollable der ListView ist auf TRUE gesetzt, die Eigenschaft AutoScroll der Form ebenfalls.

Kann mir jemand helfen?

Herzlichen Dank.

Tecla
 
Scheint tatsächlich ein Bug zu sein, je nachdem welchen View man verwendet.
Auf die Schnelle hätte ich kein Property gefunden, welches das behebt, auch das manuelle Neuzeichnen hilft nicht.

Wenn Du eine saubere Lösung brauchst, empfehle ich bei Stackoverflow resp. im MSDN-Forum nachzufragen, obwohl ich da nichts gefunden habe.

Wenn das Projekt-Budget knapp wird, empfehle ich einen kleinen Hack einzubauen und entsprechend zu dokumentieren:
Code:
        private void button1_Click(object sender, EventArgs e)
        {
            ColumnHeader h = listView1.Columns.Add("Test");
            h.Width++;
            h.Width--;
        }
 
Vielen Dank für die schnelle Antwort!

Ja, ich habe schon selber einen ähnlichen Hack eingebaut, allerdings mit der Form.Size. Der ist leider auch nicht hunderprozent verlässlich, nun hoffe ich, dass deiner es ist. Sonst werde ich wohl auf ein DataGridView umsteigen...

Herzliche Grüsse
Tecla
 
Ich habe gerade leider keine Zeit, um es selber zu testen, aber mir kam folgende Idee: vielleicht kannst du dem ListView eine Nachricht schicken, dass es seine Größe neu berechnen soll (ich denke da an WM_NCCALCSIZE oder WM_SIZE).
EDIT:
Kann bislang auch nur folgenden Workaround liefern:
C#:
            listView1.Columns.Add("neue Spalte");
            listView1.Scrollable = false;
            listView1.Scrollable = true;
 
Zuletzt bearbeitet:
Zurück