为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
潇湘沐 2023-06-25 14:27:02
我想在列表视图中显示文件名,但问题是列表视图没有显示任何项目。奇怪的部分是 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);        }    }
查看完整描述

2 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

有时它有助于创建一个新项目,验证它是否有效,然后添加更多功能,直到您了解是什么破坏了您的程序。下面的示例仅显示一个包含两个文件的 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());

        }

    }

}


查看完整回答
反对 回复 2023-06-25
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

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



查看完整回答
反对 回复 2023-06-25
  • 2 回答
  • 0 关注
  • 201 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信