2016-04-09 7 views
0

Ich versuche, eine ListBox mit Dateinamen aus einem Verzeichnis zu füllen. Mein Code funktioniert jedoch, wenn ich das Programm neu kompiliere, sind die Elemente nicht mehr da. Auch wenn ich auf einen Artikel in der ListBox klicke, wird der Inhalt der ListBox immer wieder dupliziert. Jede Anleitung wäre sehr geschätzt, danke.Füllen Combo/ListBox mit Dateinamen aus einem Verzeichnis

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

Antwort

4

Sie haben Ihre ListBox in das falsche Ereignis eingegeben. Jedes Mal, wenn Sie ein Element auswählen, wird die ListBox erneut aufgefüllt. Sie sollten es in einem anderen Fall setzen wie Button_Click oder 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\\"); 
    .... 
} 
0

So dank der Beratung von @ S.Akbari meine Lösung für mein Problem ist unten.

 public Form1() 
    { 
     InitializeComponent(); 
      DirectoryInfo dir = new DirectoryInfo(".\\Notes\\"); 
     FileInfo[] files = dir.GetFiles("*.txt"); 
     foreach (FileInfo file in files) 
     { 
      listBox1.Items.Add(file); 
     } 

    } 
Verwandte Themen