您好我按照填充列表视图的答案,但列表视图是水平填充,但我需要它填充列明智 这是我的代码
listView1.Items.Clear();
listView1.Columns.Clear();
Dictionary<string, List<string>> Values = new Dictionary<string, List<string>>();
Values.Add("CODE", list_p_code);
Values.Add("NAME", list_p_name);
Values.Add("MRP", list_mrp);
Values.Add("ORDERS", list_order_qty);
Values.Add("PENDING", list_variance_qty);
foreach (string key in Values.Keys)
{
listView1.Columns.Add(key, -2,HorizontalAlignment.Left);
// Fill item
ListViewItem item = new ListViewItem(key);
// Fill Sub Items
List<string> list = Values[key];
foreach (string data in list)
{
item.SubItems.Add(data.ToString());
}
// Add to the ListView
listView1.Items.Add(item);
}
输出如下:
CODE 1 2
NAME x y
ORDERS 4 4
...
但我希望它为
CODE NAME ORDERS ...
1 x 4
2 y 4
我该怎么做?
答案 0 :(得分:0)
将CODE, NAME, ORDERS
添加为列标题,而不是行的一部分。然后添加{1,x,4}
&amp; {2,y,4}
作为之前的行数据。
listview.Columns.Add()
答案 1 :(得分:0)
来自MSDN的示例:这是你添加的方式(项目和子项目,然后是下一个项目及其子项目):
// Create three items and three sets of subitems for each item.
ListViewItem item1 = new ListViewItem("CODE",0);
item1.SubItems.Add("NAME");
item1.SubItems.Add("ORDERS");
ListViewItem item2 = new ListViewItem("1",1);
item2.SubItems.Add("x");
item2.SubItems.Add("4");
ListViewItem item3 = new ListViewItem("2",2);
item3.SubItems.Add("y");
item3.SubItems.Add("4");
基于:http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.items.aspx
答案 2 :(得分:0)
很难理解你想做什么。如果你想:
CODE NAME ORDERS ...
1 x 4
2 y 4
然后很自然地认为,你有一组具有这3个字段的项目,并且每个项目代码都有相应的名称&amp;订单计数。
现在,您的数据结构设计绝对不正确!这就是你遇到问题的原因!
让我们来看看你的代码:
list_p_code.Length
!= list_p_name.Length
怎么办?您如何预期 listView 显示该内容?正确数据结构的示例。请注意,您应该在开始迭代项目之前初始化所有列。
public class YourItem
{
public string Code { get; set; }
public string Name { get; set; }
public string MRP { get; set; }
public int OrdersCount { get; set; }
public int PendingCount { get; set; }
}
void YourHandler()
{
listView1.Items.Clear();
listView1.Columns.Clear();
var items = new[]
{
new YourItem { Code = "Code1", Name = "Name1", MRP = "MRP1", OrdersCount = 1, PendingCount = 1 },
new YourItem { Code = "Code2", Name = "Name2", MRP = "MRP2", OrdersCount = 2, PendingCount = 2 },
new YourItem { Code = "Code3", Name = "Name3", MRP = "MRP3", OrdersCount = 3, PendingCount = 3 },
};
listView1.Columns.Add("CODE", -2,HorizontalAlignment.Left);
listView1.Columns.Add("NAME", -2,HorizontalAlignment.Left);
listView1.Columns.Add("MRP", -2,HorizontalAlignment.Left);
listView1.Columns.Add("ORDERS", -2,HorizontalAlignment.Left);
listView1.Columns.Add("PENDING", -2,HorizontalAlignment.Left);
foreach (var item in items)
{
// Fill item
ListViewItem item = new ListViewItem(item.Code);
item.SubItems.Add(item.Name);
item.SubItems.Add(item.MRP);
item.SubItems.Add(item.OrdersCount);
item.SubItems.Add(item.PendingCount);
// Add to the ListView
listView1.Items.Add(item);
}
}