C#WinForms ListView不显示项目/文件/文件夹

时间:2019-07-15 16:34:04

标签: c# .net windows winforms listview

我想在列表视图中显示文件名,但是问题是列表视图未显示任何项目。 奇怪的是listview.items.count指示已正确添加项目。 项目只是不显示在任何类型的listview.view中。 编辑:ListView是拖放到选项卡控件上。

$str = "1-a,2-b,3-c";
$arr1 = explode(",", preg_replace("/\-([a-zA-Z]+)/", "", $str));
$arr2 = explode(",", preg_replace("/([0-9]+)\-/", "", $str));

print_r(array_combine($arr1, $arr2));

2 个答案:

答案 0 :(得分:0)

有时,它有助于创建一个新项目,验证它是否可以工作,然后添加更多功能,直到您了解破坏程序的原因。下面的示例仅显示一个包含两个文件的ListView。确保这在您的计算机上有效。然后,慢慢添加更多代码,并始终检查程序是否仍然有效。我将所有代码都放在一个文件中,因为它更容易发布堆栈溢出,但您可以将其拆分为单独的文件。

另请参阅ListView documentation

using System;
using System.IO;
using System.Windows.Forms;

namespace WindowsFormsApp
{
    public class ListViewDemo : Form
    {
        public ListViewDemo()
        {
            var _listView1 = new ListView();

            string[] files = { @"C:\tmp\file1.txt", @"c:\path\to\file2.doc" };
            foreach (string fi in files)
            {
                string fnameonly = Path.GetFileNameWithoutExtension(fi);
                _listView1.Items.Add(fnameonly);
            }

            AutoSize = true;
            Controls.Add(_listView1);    
        }
    }

    static class Program
    {    
        [STAThread]
        static void Main()
        {
            Application.Run(new ListViewDemo());
        }
    }
}

答案 1 :(得分:0)

这是一个非常愚蠢的错误,需要几天的时间才能发现。我不小心将内存分配给通过拖放操作创建的ListView控件。