2011-05-25 126 views
6

是否有一個原因,當使用listview1.View = View.Details我的列表視圖將展開(生成滾動條)時,我添加項目,但它們是不可見的,但當我切換到listview1.View = View.List它工作得很好?列表視圖項不顯示

不,我認爲這真的很重要,但這裏是我用來項添加到列表視圖代碼:

 ListViewItem item1 = new ListViewItem(file[1]); 
    listView1.Items.Add(item1); 

和自動生成的設計器代碼:

 // 
     // listView1 
     // 
     this.listView1.CheckBoxes = true; 
     this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { 
     this.Path}); 
     this.listView1.Location = new System.Drawing.Point(12, 44); 
     this.listView1.Name = "listView1"; 
     this.listView1.Size = new System.Drawing.Size(457, 354); 
     this.listView1.TabIndex = 7; 
     this.listView1.UseCompatibleStateImageBehavior = false; 
     this.listView1.View = System.Windows.Forms.View.Details; 

文件在第一個元素中包含大約50個奇數字符的字符串數組(使用調試器進行檢查)。

回答

16

下面的代碼應該工作:

ColumnHeader columnHeader1=new ColumnHeader(); 
columnHeader1.Text="Column1"; 
this.listView1.Columns.AddRange(new ColumnHeader[] { columnHeader1 }); 
ListViewItem item = new ListViewItem("1"); 
this.listView1.Items.Add(item); 
this.listView1.View = View.Details; 

如果沒有我不知道。您要添加的字符串的字符是否可見?

+0

它工作,但我不知道爲什麼你添加的列工作,而我之前添加的列沒有。 – soandos 2011-05-25 17:43:16

+0

在沒有看到您的代碼的情況下無法幫助您,但必須有所不同。你在同一個線程上做所有事情嗎? – InBetween 2011-05-25 17:51:41

+0

上面編輯包含設計器代碼。它似乎已經像你一樣添加了列... – soandos 2011-05-25 18:20:17

8

您需要爲Details視圖添加一列才能工作。

+0

我這樣做,手動。它被稱爲路徑。我是否必須以某種方式將項目添加到列中? – soandos 2011-05-25 16:58:53

+0

您可能需要添加SubItems到ListViewItem,但我不這麼認爲。什麼是「Columns.Count」? – SLaks 2011-05-25 17:01:15

+0

1 //對不起填充 – soandos 2011-05-25 17:08:56

36

你打電話給「清除」嗎?如果是這樣,請確保您撥打lv.Items.Clear()而不是lv.Clear()

+0

我不是,但是無論如何感謝提示。 – soandos 2011-08-01 17:32:29

+3

謝謝,這解決了我的問題。關於ListView.Clear()的MSDN:「從控件中刪除所有項目和列。」 – 2013-02-11 11:04:48

+6

omg,同樣的問題。被稱爲lv.Clear(並且我想要lv.Items.Clear())。花了很長時間在這個;)) – iwo 2013-05-04 19:51:52

1

我有同樣的問題,在我的listview中看不到文字。當我使用代碼克隆項目時,錯誤是由我做出的;我不小心重命名了第一部分,並將文本信息再次添加到第一項,而不是克隆的項目。這裏是我的意思是:

錯誤:

ListViewItem item_klon2 = new ListViewItem(); 
item_klon.Text = System.IO.Path.GetFileName(file_with_path); 
item_klon.SubItems.Add(short_date); 
item_klon.SubItems.Add(filesize.ToString() + " kb"); 

右:

ListViewItem item_klon2 = new ListViewItem(); 
item_klon2.Text = System.IO.Path.GetFileName(file_with_path); 
item_klon2.SubItems.Add(short_date); 
item_klon2.SubItems.Add(filesize.ToString() + " kb"); 
+1

錯誤和正確的代碼沒有區別。也許編輯錯誤?請檢查。 – Joel 2013-09-25 14:16:40

+0

區別在於'錯誤'的情況,他不是將項目添加到新的列表視圖中,而是將舊項目添加到新的列表視圖中。請參閱item_klon。 VS. item_klon2 2014-04-11 19:08:23