Элементы Listview не отображаются

есть ли причина, почему при использовании listview1.View = View.Details мой listview будет расширяться (генерировать полосы прокрутки), когда я добавляю элементы, но они будут невидимыми, но когда я переключу его на 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 нечетных символов в первом элементе (проверено с помощью отладчика).

4 ответов


должен работать следующий код:

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;

Если это не так я понятия не имею. Видны ли символы строки, которую вы добавляете?


вы называете "четким". Если это так, убедитесь, что вы звоните lv.Items.Clear(), а не lv.Clear().


вам нужно добавить столбец для просмотра сведений для работы.


у меня была такая же проблема, не виден текст в 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");