2016-04-09 11 views
0

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

答えて

4

あなたのListBoxに間違ったイベントが設定されました。したがって、アイテムを選択するたびにListBoxが再度入力されます。あなたはButton_ClickForm_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

私の問題への私の解決策は以下の通りです@ S.Akbariのアドバイスのおかげので。

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

    } 
関連する問題