Чтобы добавить элементы в столбец 1 в моем элементе управления listView
(Winform
), я использую listView1.Items.Add
, это отлично работает, но как добавить элементы в столбцы 2 и 3 и т.д.?
С# listView, как добавить элементы в столбцы 2, 3 и 4 и т.д.?
Ответ 1
Существует несколько способов сделать это, но вот одно решение (для 4 столбцов).
string[] row1 = { "s1", "s2", "s3" };
listView1.Items.Add("Column1Text").SubItems.AddRange(row1);
И более верный способ здесь:
ListViewItem item1 = new ListViewItem("Something");
item1.SubItems.Add("SubItem1a");
item1.SubItems.Add("SubItem1b");
item1.SubItems.Add("SubItem1c");
ListViewItem item2 = new ListViewItem("Something2");
item2.SubItems.Add("SubItem2a");
item2.SubItems.Add("SubItem2b");
item2.SubItems.Add("SubItem2c");
ListViewItem item3 = new ListViewItem("Something3");
item3.SubItems.Add("SubItem3a");
item3.SubItems.Add("SubItem3b");
item3.SubItems.Add("SubItem3c");
ListView1.Items.AddRange(new ListViewItem[] {item1,item2,item3});
Ответ 2
Вы можете добавить items/подпункты в ListView, например:
ListViewItem item = new ListViewItem(new []{"1","2","3","4"});
listView1.Items.Add(item);
Но я подозреваю, что ваша проблема связана с View Type. Установите его в конструкторе в "Детали" или выполните следующие действия в коде:
listView1.View = View.Details;
Ответ 3
Вот документация msdn для объекта listview и объекта listviewItem.
http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.listviewitem.aspx
Я очень рекомендую вам хотя бы потратить время, чтобы снять документацию с любыми объектами, которые вы используете в рамках .net. Хотя документация может быть довольно бедной в несколько раз, она по-прежнему неоценима, особенно когда вы сталкиваетесь с такими ситуациями.
Но, как сказал Джеймс Аткинсон, просто вопрос добавления подэлементов в listviewitem следующим образом:
ListViewItem i = new ListViewItem("column1");
i.SubItems.Add("column2");
i.SubItems.Add("column3");
Ответ 4
private void MainTimesheetForm_Load(object sender, EventArgs e)
{
ListViewItem newList = new ListViewItem("1");
newList.SubItems.Add("2");
newList.SubItems.Add(DateTime.Now.ToLongTimeString());
newList.SubItems.Add("3");
newList.SubItems.Add("4");
newList.SubItems.Add("5");
newList.SubItems.Add("6");
listViewTimeSheet.Items.Add(newList);
}
Ответ 5
Для вашей проблемы используйте вот так:
ListViewItem row = new ListViewItem();
row.SubItems.Add(value.ToString());
listview1.Items.Add(row);
Ответ 6
Одна строка, которую я создал, и она работает:
listView1.Items.Add(new ListViewItem { ImageIndex = 0, Text = randomArray["maintext"], SubItems = { randomArray["columntext2"], randomArray["columntext3"] } });
Ответ 7
Использовать ListViewSubItem - См.: MSDN