将文件填充到C#windows窗体中的文件夹的列表框中

我是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);
            }
        }

当我运行表单时,文件夹中的文件不显示???

解决方法

而不是listBox1_SelectedindexChanged,更新列表框反对一些按钮单击,否则您的代码看起来很好.最初你可能没有列表框中的任何项目,这就是当你点击它时不会触发SelectedindexChanged的原因.

编辑:(由于问题已被编辑,我将更新我的答案)
要使用文件覆盖列表框,您应该这样做,除了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,"*.other");
}

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...