列表视图项目未显示

soa*_*dos 7 c# listview

listview1.View = View.Details当我添加项目时使用我的listview会扩展(生成滚动条)但是让它们不可见,这是有原因的listview1.View = View.List吗?但是当我将它切换到它时工作得很好吗?

并不是说我觉得它真的很重要,但这里是我用来向listview添加项目的代码:

     ListViewItem item1 = new ListViewItem(file[1]);
     listView1.Items.Add(item1);
Run Code Online (Sandbox Code Playgroud)

和自动生成的设计师代码:

        // 
        // 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;
Run Code Online (Sandbox Code Playgroud)

file是一个字符串数组,在第一个元素中包含大约50个奇数字符(使用调试器检查).

小智 44

你打电话给"清除"吗?如果是这样,请确保你打电话lv.Items.Clear()而不是lv.Clear().

  • 同上,同样的问题.叫做lv.Clear(我想要lv.Items.Clear()).花了很长时间在这上面;)) (6认同)
  • 谢谢,这解决了我的问题.关于ListView.Clear()的MSDN:"从控件中删除所有项目和列." (3认同)

InB*_*een 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;
Run Code Online (Sandbox Code Playgroud)

如果不是,我不知道.您添加的字符串的字符是否可见?

  • 奇怪...特别是如果列表视图在View设置List时正确显示项目.不确定是什么事情发生了,但是在你的代码中的某个地方,你正在摆弄比在详细视图中显示项目所必需的更多的东西. (3认同)

SLa*_*aks 9

您需要为"详细信息"视图添加一列才能生效.