您可以設置dinfo
在combobox
路徑。
假設您的組合框只是有目錄
dinfo = new DirectoryInfo(combobox.SelectedItem);
的字符串和您的代碼的其餘部分保持不變
private void Form1_Load(object sender, EventArgs e)
{
DirectoryInfo dinfo = new DirectoryInfo(combobox.SelectedItem);
DirectoryInfo[] folders = dinfo.GetDirectories();
FileInfo[] Files = dinfo.GetFiles();
cbobox.DataSource = folders;
foreach(FileInfo file in Files)
{
lstbox.Items.Add(file.Name);
}
}
如果你想改變它當一個新項目組合框被選中,你需要使用一個事件。
private void Form1_Load(object sender, EventArgs e)
{
RefreshList();
combobox.SelectedIndexChanged +=
new System.EventHandler(ComboBox1_SelectedIndexChanged);
}
private void RefreshList()
{
DirectoryInfo dinfo = new DirectoryInfo(combobox.SelectedItem);
DirectoryInfo[] folders = dinfo.GetDirectories();
FileInfo[] Files = dinfo.GetFiles();
cbobox.DataSource = folders;
foreach(FileInfo file in Files)
{
lstbox.Items.Add(file.Name);
}
}
private void ComboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
RefreshList();
}
請仔細閱讀
此代碼假設您的組合框的名稱爲combobox
,並在組合框中的字符串是完整路徑(或相對路徑)要通過篩選的目錄。 如果不是,您需要適應以達到您的目的。
問題是? – orhtej2
如何編碼以通過組合框列出選定文件夾中的文件。 – Sbk
只需將您作爲處理程序提供的代碼調用到[ComboBox.SelectionChangeCommited](https://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.selectionchangecommitted(v = vs.110))。 aspx)? – orhtej2