簡體   English   中英

Listview項目(和子項目)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM