[英]Listview items (and subitems)
希望你們在我發瘋之前能再次幫助我。 我一直在尋找輕薄,在這里和谷歌。 通過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”,沒有別的......
我想要嘗試的我自己的版本如下:
我有一個名為“成員”的字典。 它包含兩個兩個字符串,“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
示例是正確的,您應該將listView置於詳細信息模式並添加列。
你的代碼是錯誤的,你不應該創建兩個列表項lvi和lv2,只需在foreach中創建1,它的文本是第一列的文本,為它添加子項並將項添加到foreach內的listview。
只有在詳細信息模式下設置ListView時,才會看到列。
確保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)
}
}
如果您看到的只是大圖標,則需要將ListView上的View屬性設置為Details。 否則代碼看起來或多或少是正確的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.