Wie kann ich Text für einen einzelnen Unterpunkt in einem Listview # unter Verwendung von C ausrichten?

StackOverflow https://stackoverflow.com/questions/561798

  •  05-09-2019
  •  | 
  •  

Frage

ich nicht in der Lage war, eine Antwort überall über dieses scheinbar einfache Thema zu finden: ist es möglich, Text eines einzelnen subitem in einem WinForms Listview-Steuerelement auszurichten

Wenn ja, wie?

Ich mag Text in der gleichen Spalte unterschiedlich ausgerichtet haben.

War es hilfreich?

Lösung 4

Für die Zukunft ist hier, wie ich es gelöst:

// Make owner-drawn to be able to give different alignments to single subitems
lvResult.OwnerDraw = true;
...

// Handle DrawSubItem event
private void lvResult_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
{
    // This is the default text alignment
    TextFormatFlags flags = TextFormatFlags.Left;

    // Align text on the right for the subitems after row 11 in the 
    // first column
    if (e.ColumnIndex == 0 && e.Item.Index > 11)
    {
        flags = TextFormatFlags.Right;
    }

    e.DrawText(flags);
}

// Handle DrawColumnHeader event
private void lvResult_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
    // Draw the column header normally
    e.DrawDefault = true;
    e.DrawBackground();
    e.DrawText();
}

Es war notwendig, die DrawColumnHeader, da ansonsten keine Text- oder Spaltentrenn gezogen würde zu behandeln.

Andere Tipps

Die „Column“ Klasse hat eine „Textalign“ Eigenschaft, die die Ausrichtung für alle Unterpunkte in der Spalte ändern. Wenn Sie etwas mehr Phantasie braucht man immer die „DrawSubItem“ Veranstaltung nutzen und machen es Besitzer gezogen.

Beispiel:

listView1.Columns[1].TextAlign = HorizontalAlignment.Right;

wird Spalte "1" Ausrichtung nach rechts gesetzt

Hinweis: Aufgrund einer Einschränkung des zugrunde liegenden nativen Listview-Steuerelement (in comctl32.dll leben), kann die erste Spalte nicht ausgerichtet werden. Es wird immer links ausgerichtet. Die zweite Einschränkung ist, wenn Sie benutzerdefinierte (Custom zeichnen Subitems) ziehen: Wenn Sie Neuanordnung von Spalten, der Text der ersten Spalte ermöglichen nicht richtig neu geordnet. Ich löste diese Einschränkung (wäre es nicht um einen Fehler nennen, weil die Listenansicht viele Listenstile und die interne Datenstruktur einer Listenansicht unterstützt, ist ein Baum wie ein), indem nicht die erste Spalte neu zu ordnen ermöglicht, die in den meisten Fällen kein Problem , weil Sie eine Art Schlüssel für die erste Spalte wie Anzahl oder etwas ähnliches verwenden werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top