希望你们在我发疯之前能再次帮助我。 我一直在寻找轻薄,在这里和谷歌。 通过MSDN来回,但无济于事......我只是不明白我做错了什么......
我有一个表单,我在其中添加了一个列表视图(当它被拖动到表单时没有对默认设置进行任何更改)。
经过一天的愚弄,我只想尝试一个简单的例子,因为我想做的事情都不会奏效。这个例子可以作为某种“如果这不起作用,那么是时候寻求帮助了!”......
这是一个例子;
ListViewItem item = new ListViewItem();
item.Text = "FirstItem";
item.SubItems.Add("A subitem");
item.SubItems.Add("A second subitem");
item.SubItems.Add("A third subitem");
listView1.Items.Add(item);
这个例子给我的一切,它是“FirstItem”,没有别的......
我想尝试的我自己的版本如下:
我有一个名为“members”的字典。它包含两个两个字符串,“name”为Key,“LastSeen”ad value。
我正在尝试以下方法:
if (GroupMembers.Count > 0)
{
listView1.Items.Clear();
key2name getname = new key2name();
ListViewItem lvi = new ListViewItem("Name");
ListViewItem lvi2 = new ListViewItem("Last seen");
listView1.Columns.Add("Name", -2, HorizontalAlignment.Left);
listView1.Columns.Add("LastSeen", -2, HorizontalAlignment.Left);
foreach (KeyValuePair<string, string> member in GroupMembers)
{
lvi.SubItems.Add(member.Key);
lvi2.SubItems.Add(member.Value);
}
listView1.Items.AddRange(new ListViewItem[] { lvi, lvi2 });
}
我想要实现的是,我的listview将显示两列,第一列名称带有“Name”,第二列带有“Last seen”。 在每个列下,我希望显示字典的内容。
在我彻底解决这个问题之前,有人可以帮我解释一下吗? 感谢...
虽然答案是正确的,但我仍然没有得到我想要的声音,而且我不确定该怎么做..
现在我看到了列, 但我明白了:
| Name | LastSeen |
|Last seen | 2011-09-06 |
|Name | Full Name |
我想要的是:
| Name | LastSeen |
|FullName | 2011-09-06 |
|FullName | 2011-09-06 |
|FullName | 2011-09-06 |
字典包含3个KeyValuePairs
答案 0 :(得分:1)
示例是正确的,您应该将listView置于详细信息模式并添加列。
你的代码错了你不应该创建两个列表项lvi和lv2,只需在foreach中创建1,它的文本是第一列的文本,为它添加子项并将项添加到listview里面的foreach。
只有在详细模式下设置ListView时才会看到列。
答案 1 :(得分:1)
确保您的ListView将其View属性设置为Details,以便显示列。
您可能还想在设计时设置一些listview的属性,包括列,除非它们是动态的。
if (GroupMembers.Count > 0)
{
listView1.Items.Clear();
key2name getname = new key2name();
//If your going to do this here, you will want to clear your Columns
//listView1.Columns.Clear();
//However, I would suggest you put this elsewhere, or better yet set at design time.
listView1.Columns.Add("Name", -2, HorizontalAlignment.Left);
listView1.Columns.Add("LastSeen", -2, HorizontalAlignment.Left);
foreach (KeyValuePair<string, string> member in GroupMembers)
{
//This creates a new 'row' in your listview, and populates the first column
// with the Key
ListViewItem lvi = new ListViewItem(member.Key);
//This populates the second column with the value
lvi.SubItems.Add(member.Value);
listView1.Items.Add(lvi)
}
}
答案 2 :(得分:0)
如果您看到的只是大图标,则需要将ListView上的View property设置为详细信息。否则代码看起来或多或少是正确的。