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

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



string[] files;

bool error = false;


    try   

    {        

          files = Directory.GetFiles(addDir /* this is the folder path*/, "*.txt", SearchOption.AllDirectories);


    }

    catch(Exception ex)

    {

        // the code will jump here if there any access restrictions

        MessageBox.Show(ex.Message);


        error = true;

    }


    if(!error)

    {

        foreach (string fi in files)

        {

            string fnameonly = System.IO.Path.GetFileNameWithoutExtension(fi);

            _listView1.Items.Add(fnameonly);

        }

    }


潇湘沐
浏览 224回答 2
2回答

茅侃侃

有时它有助于创建一个新项目,验证它是否有效,然后添加更多功能,直到您了解是什么破坏了您的程序。下面的示例仅显示一个包含两个文件的 ListView。确保这适用于您的机器。然后慢慢添加更多代码并始终检查您的程序是否仍然有效。我将所有代码放在一个文件中,因为在堆栈溢出上发布更容易,但您可以将其拆分为单独的文件。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());        }    }}

繁华开满天机

这是一个非常愚蠢的错误,花了几天时间才发现。不小心将内存分配给了通过拖放操作创建的 ListView 控件。
打开App,查看更多内容
随时随地看视频慕课网APP