列表视图项目未显示

时间:2011-05-25 16:57:13

标签: c# listview

当我使用listview1.View = View.Details时,我的列表视图会在我添加项目时展开(生成滚动条)但是让它们不可见,但是当我将其切换到listview1.View = View.List时,它有效吗?

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

     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;

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

6 个答案:

答案 0 :(得分:43)

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

答案 1 :(得分: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;

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

答案 2 :(得分:9)

您需要为“详细信息”视图添加一列才能正常工作。

答案 3 :(得分: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");

答案 4 :(得分:0)

我遇到了同样的问题。

我已经将列宽设置为-2,因此它将自动调整为列标题中文本的长度。当我切换到Details时,列宽自动重置为0,从而隐藏了项目。

答案 5 :(得分:0)

只需将其添加到您的Listview中即可。更改listview1为您的Listview名称:

listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left);