C# listView,如何将项目添加到第 2、3 和 4 列等?
Posted
技术标签:
【中文标题】C# listView,如何将项目添加到第 2、3 和 4 列等?【英文标题】:C# listView, how do I add items to columns 2, 3 and 4 etc? 【发布时间】:2010-10-03 03:44:23 【问题描述】:要将项目添加到我的 listView
控件 (Winform
) 中的第 1 列,我正在使用 listView1.Items.Add
,这很好用,但是如何将项目添加到第 2 列和第 3 列等?
【问题讨论】:
+1:好问题。 ListView 控件的这一部分非常混乱和不直观。有时候我真的觉得他们讨厌开发者@MS @Mika:从用户那里抽象出强大的 GUI 设计的复杂性并不容易。 (这在我的脑海中听起来不那么傲慢;对不起!) 添加到子目录 【参考方案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);
【讨论】:
在我的情况下,我添加了一个子项,但仍然没有出现,然后我明白我需要在列表视图中添加一个额外的标题 -> ColumnHeader header2 = new ColumnHeader Text = "Column2 ", 名称 = "col2" ; listView.Columns.Add(header2);【参考方案2】:您可以将items / sub-items 添加到 ListView 中,例如:
ListViewItem item = new ListViewItem(new []"1","2","3","4");
listView1.Items.Add(item);
但我怀疑您的问题与View Type 有关。在设计器中将其设置为 Details 或在代码中执行以下操作:
listView1.View = View.Details;
【讨论】:
使用“listView1.FullRowSelect = true”也很重要...否则只有第1列是可点击的。我希望我早点知道这一点!它会为我节省大量的工作。 尤其是关于 listView1.View 的评论对我有帮助!谢谢!【参考方案3】: 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);
【讨论】:
【参考方案4】:这是关于 listview 对象和 listviewItem 对象的 msdn 文档。http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.aspxhttp://msdn.microsoft.com/en-us/library/system.windows.forms.listviewitem.aspx
我强烈建议您至少花时间浏览一下您在 .net 框架中使用的任何对象的文档。虽然有时文档可能很差,但它仍然非常宝贵,尤其是当您遇到这种情况时。
但正如 James Atkinson 所说,这只是将子项添加到 listviewitem 的问题,如下所示:
ListViewItem i = new ListViewItem("column1");
i.SubItems.Add("column2");
i.SubItems.Add("column3");
【讨论】:
【参考方案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"] );
【讨论】:
代码不起作用...Error CS0200 Property or indexer 'ListViewItem.SubItems' cannot be assigned to -- it is read only
【参考方案7】:
使用 ListViewSubItem - 请参阅:MSDN
【讨论】:
以上是关于C# listView,如何将项目添加到第 2、3 和 4 列等?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# WPF 中从 ListView/XML 中完全删除一个项目?