[visual-studio]填充到一个列表框,从 C# windows 窗体中的文件夹中的文件

发布时间: 2014/3/1 1:47:58
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我是一个新手在 C# 中和我有 2 列表框 l--> istBox1 和 listBox2 和我想要将文件从文件夹中加载到这些列表框。我试着像这样:listBox1:

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            DirectoryInfo dinfo = new DirectoryInfo(@"C:\TestLoadFiles");
            FileInfo[] Files = dinfo.GetFiles("*.rtdl");
            foreach (FileInfo file in Files)
            {
                listbox1.Items.Add(file.Name);
            }

        }

listBox2:

private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            DirectoryInfo dinfo = new DirectoryInfo(@"C:\TestLoadFiles");
            FileInfo[] Files = dinfo.GetFiles("*.dlz");
            foreach (FileInfo file in Files)
            {
                listbox2.Items.Add(file.Name);
            }
        }

运行时该窗体,该文件夹中的文件不显示???

解决方法 1:

而不是 listBox1_SelectedIndexChanged,针对一些按钮列表框中单击,更新您的代码否则看起来不错。最初你可能没有任何项目在您的列表框中,这就是为什么当您单击它时不会被炒鱿鱼 SelectedIndexChanged。

编辑: (因为已编辑的问题,我会更新我的答案)
Pouplate 向您列表框的文件,你应该做的在一些非 SelectedIndexChanged 的事件中。因为在您的应用程序开始时您的列表框是空的有的项目在列表框和用户点击它时获取触发 SelectedIndexChanged 事件。您可能会创建下面的函数

private void PopulateListBox(ListBox lsb, string Folder, string FileType)
        {
            DirectoryInfo dinfo = new DirectoryInfo(Folder);
            FileInfo[] Files = dinfo.GetFiles(FileType);
            foreach (FileInfo file in Files)
            {
                lsb.Items.Add(file.Name);
            }
        }

现在你可能会调用此函数与您在一些反对一个按钮的事件中的列表框中单击或窗体加载。例如

private void Form1_Load(object sender, EventArgs e)
        {
            PopulateListBox(listbox1, @"C:\TestLoadFiles", "*.rtld");
            PopulateListBox(listbox2, @"C:\TestLoadFiles", "*.other");
        }
官方微信
官方QQ群
31647020