s yu Ответов: 2

Как заполнить listview в одном столбце


Ниже, если код, который я использовал для заполнения ListView:
foreach (DataRow dr in dt_Updated.Rows) {
    ListViewItem lvi = new ListViewItem(dr[eGisId].ToString());
    listViewID.Items.Add(lvi);
}
listViewID.Items[0].Selected = listViewID.Items[0].Focused = true;
listViewID.View = System.Windows.Forms.View.List;

Однако данные заполняются по нескольким столбцам, если их много. Я хочу, чтобы данные заполнялись только в одном столбце, а тем временем отображалась вертикальная полоса прокрутки.
Ссылаясь на Как установить свойство вертикальной полосы прокрутки в Ultralistview control - Windows Forms - WinListView[^] в котором пользователь использует
"myList".ViewSettingsList.MultiColumn = false;

К сожалению, для элемента управления ListView я не смог найти его свойство ViewSettingsList.
Как правильно это сделать? Я хотел бы, чтобы кто-то мог дать свой ответ.
Кроме того, после отображения данных я хочу, чтобы 1-й элемент был выделен цветом фона по умолчанию.
listViewID.Items[0].Selected = true;

Но в настоящее время выбранный элемент отображается так, как будто он не выделен. Что мне теперь делать?
Спасибо, если вы можете помочь.

Что я уже пробовал:

Попробовал заполнить ListView в одном столбце, но безуспешно

Maciej Los

Какой фреймворк: WinForm, WPF,... ?

2 Ответов

Рейтинг:
20

Maciej Los

Если вы говорите о WinForm элемент управления ListView[^]...

//add single column
//-2 => autosize
listViewID.Columns.Add("MyColumn", -2, HorizontalAlignment.Left);
listViewID.FullRowSelect = true;
listViewID.GridLines = true;
listViewID.View = System.Windows.Forms.View.List;
//load data
foreach (DataRow dr in dt_Updated.Rows) {
    ListViewItem lvi = new ListViewItem(dr[eGisId].ToString());
    listViewID.Items.Add(lvi);
}
//move focus to listview first
listViewID.Focus();
listViewID.Items[0].Selected = true;


Для получения более подробной информации, пожалуйста, смотрите: О Элементах Управления Списком (Windows)[^]
Элементы listviewitem.Выбранное Свойство (System.Окна.Формы)[^]


s yu

Спасибо.

Maciej Los

Всегда пожалуйста.

Рейтинг:
2

s yu

Проблема решается путем обращения к c# - создание прокрутки списка в вертикальном направлении - переполнение стека[^]. А именно, я добавил следующий код:

// Add a dummy column           
ColumnHeader header = new ColumnHeader();
header.Text = "";
header.Name = "col1";
listViewID.Columns.Add(header);
// Then
            listViewID.Scrollable = true;
            listViewID.View = System.Windows.Forms.View.Details; 

Спасибо за Ваше мнение.