2011-05-25 86 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