ListView с различным выравниванием текста?

Как настроить ListView для выравнивания некоторых столбцов вправо и некоторых столбцов влево?

Я имею в виду, что у меня есть ListView, его макет слева направо, но я хочу, чтобы второй столбец и все, что под ним, было выровнено по левому краю?

Заранее спасибо.

#НАЧАТЬ РЕДАКТИРОВАНИЕ

Свойство View в ListView — Details .

Я использую такой код, как этот код:

        ListViewItem a = new ListViewItem();
        a.Text = "Some Name";
        a.SubItems.Add("Some Phone num");
        listView1.Items.Add(a);

И я хочу, чтобы TextAlignment справа от Номера телефона, но я не хочу менять выравнивание Имени.

#КОНЕЦ ИЗМЕНЕНИЯ


person Mostafa Farzán    schedule 21.01.2012    source источник
comment
Какого типа элементы вы пытаетесь выровнять? Например, является ли второй подпункт частью первого объекта? Если, например, вы размещаете второй элемент по-другому, потому что это второе поле, вам лучше всего использовать шаблон. Пожалуйста, разместите более подробную информацию.   -  person Mark Smith    schedule 21.01.2012


Ответы (1)


Что-то вроде этого было дано в прошлом, возможно, это поможет вам:

Как мне выровнять текст для одного подэлемента в ListView с использованием C#?

person Val Akkapeddi    schedule 21.01.2012
comment
Мне не удалось изменить выравнивание столбца. Поэтому я включил OwnerDraw и решил это так же, как и он, а затем изменил выравнивание, но когда я вставляю новый элемент в ListView, его выравнивание остается прежним! В чем проблема? - person Mostafa Farzán; 21.01.2012
comment
В коде из примера, который я связал, TextFormatFlags изменяются только для столбца один после строки 0. Вы должны делать что-то вроде приведенного ниже. lv.OwnerDraw = true; lv.DrawSubItem += new(lv_DrawSubItem); void lv_DrawSubItem(object sender, DrawListViewSubItemEventArgs e) { ` var flags = TextFormatFlags.Left;` ` if (e.ColumnIndex == 1) { flags = TextFormatFlags.Right; }` ` e.DrawText(флаги);` } - person Val Akkapeddi; 23.01.2012