Listview项未显示

本文关键字:显示 Listview | 更新日期: 2023-09-27 17:57:36

在使用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个奇数字符(使用调试器进行检查)。

Listview项未显示

您正在调用"Clear"吗?如果是,请确保您呼叫的是lv.Items.Clear(),而不是lv.Clear()

以下代码应该可以工作:

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;

如果没有,我就一无所知。您添加的字符串中的字符是否可见?

您需要为Details视图添加一列才能工作。

我也遇到了同样的问题,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");

我也遇到了同样的问题。

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

只需将其添加到Listview中即可。更改列表视图1您的列表视图名称:

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