我正试图用目录中的文件名填充ListBox
。然而,当我重新编译程序时,我的代码就可以工作了,这些项就不在了。此外,当我单击ListBox
中的项目时,ListBox
的内容会一次又一次地重复。任何指导都将不胜感激,谢谢。
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
DirectoryInfo dir = new DirectoryInfo(".\Notes\");
FileInfo[] files = dir.GetFiles("*.txt");
foreach ( FileInfo file in files )
{
listBox1.Items.Add(file);
}
}
您在不正确的事件中填充了ListBox
。因此,每次选择项目时,都会再次填充ListBox
。您应该将它放在另一个事件中,如Button_Click
或Form_load
:
private void Form1_Load(object sender, EventArgs e)
{
DirectoryInfo dir = new DirectoryInfo(".\Notes\");
FileInfo[] files = dir.GetFiles("*.txt");
foreach ( FileInfo file in files )
{
listBox1.Items.Add(file);
}
}
//Or in a Button_Click event
private void button1_Click(object sender, EventArgs e)
{
DirectoryInfo dir = new DirectoryInfo(".\Notes\");
....
}
因此,感谢@S.Akbari的建议,我的问题解决方案如下。
public Form1()
{
InitializeComponent();
DirectoryInfo dir = new DirectoryInfo(".\Notes\");
FileInfo[] files = dir.GetFiles("*.txt");
foreach (FileInfo file in files)
{
listBox1.Items.Add(file);
}
}