2012-04-09 18 views
2

Ich verwende ObjectListView anstelle der Standard-ListView ist, weil ich die Spalten word-wrap wollte.ObjectListView ist kein Word-Wrap

Ich habe an mehreren Stellen gelesen, dass das einzige, was ich tun muss, um das Word-Wrapping zu aktivieren, ist der Satz column.wordWrap auf wahr.

Ich tat genau das, aber es funktioniert nicht.

Was fehlt mir hier?

Edit: Ich realisiere jetzt, dass ich meinen Spaltenbesitzer gezeichnet werden muss. Ich fand this page welche Art von mir sagt, was zu tun ist, aber ich bin nicht sicher, wo ich es in meinem Code platzieren. Ich bin mir auch nicht ganz sicher, ob ich innerhalb des Delegaten bestimmte Attribute hinzufügen muss, um den Zeilenumbruch zu ermöglichen (nach dem Aussehen der Dinge, die standardmäßig aktiviert sind). Die Sache ist, habe ich versucht, was ich in dieser Seite gefunden, kopiert es Wort für Wort, und meine Liste sieht genau das gleiche ...

+0

Was genau meinen Sie mit "funktioniert nicht"? Bearbeiten Sie Ihre Frage, um Code und Screenshots von dem, was Sie gerade haben, und wie Sie es erwartet haben, einzuschließen. –

Antwort

5

Wenn Sie mit dem „Zeilenumbruch“ bedeuten, Sie verschiedene Zeilen unterschiedliche Höhen haben wollen, ist die FAQ Antwort richtig - es kann einfach nicht getan werden.

Wenn Sie jedoch jede Zeile so machen, dass sie zwei oder mehr Textzeilen anzeigen kann, dann kann ObjectListView Wort umbrechen.

Es braucht drei Bedingungen:

  1. Set WordWrap-wahre auf der Säule zu wickeln. Das hast du schon gemacht.
  2. Stellen Sie sicher, dass der ObjectListView Eigentümer gezeichnet ist (OwnerDraw bis true festlegen - dies kann im Formular-Designer getan werden). Die Basis ListView kann nicht umbrechen, also müssen wir die Zellen selbst zeichnen.
  3. Achten Sie darauf, es Raum ist die umschlossene Zeilen durch Einstellen der RowHeight bis 32 (oder einen anderen Wert)

Dies ist die Registerkarte Daten aus der Demo zu sehen. Die erste Spalte hat WordWrap auf True festgelegt. Word wrap in action

+0

Das ist genau das, was ich versuche zu tun, und ich habe die RowHeight auf 32 gesetzt und es hat immer noch nicht funktioniert, also ich denke, was ich vermisse, ist die zweite Bedingung. Wie stelle ich sicher, dass es in der Tat Besitzer gezeichnet ist? – Superman2625

+0

olv1.OwnerDraw = Wahr – Grammarian

0

Auf der ObjectListView SourceForge FAQ Seite, heißt es ausdrücklich:

Kann es Zeilenumbruch?

Nr

+0

Sie müssen den ganzen Absatz lesen. Das NEIN bezieht sich auf "Kann eine ObjectListView Zeilen unterschiedlicher Höhe haben?". Es ist nicht das Problem, dass der Text nicht umgebrochen werden kann. Das Problem ist, dass die Zeilenhöhe für ALLE Zeilen erhöht werden müsste, um sie richtig anzuzeigen. –