簡體   English   中英

如何使用組合框過濾列表框

[英]How to filter a listbox using a combobox

如何使用C#和Windows窗體的組合框過濾列表框中的項目?

列表框包含文件,組合框需要按擴展名對其進行過濾

請幫助我是編程新手

這幾乎與您上一個問題完全相同。 相同的答案適用。

在組合框的選定索引更改事件上,我將根據從組合框中選擇的過濾器,將項目添加到列表框中。 您可以使用System.IO.DirectoryInfo來過濾具有給定文件擴展名的目錄。

//Clear your listBox before filtering if it contains items
if(yourListBox.Items.Count > 0)
   yourListBox.Items.Clear();
DirectoryInfo dInfo = new DirectoryInfo(<string yourDirectory>);                                 
FileInfo[] fileInfo = dInfo.GetFiles("*" + <string yourChosenFileExtension>);
foreach (FileInfo file in fileInfo)
{  
   yourListBox.Items.Add(file.Name);
}

用組合框過濾texbox

好了,您可以將項目加載到數據表中並將該數據表添加到listbox.datasource屬性。 然后,您可以在DataTable上設置Filter屬性以過濾項目。

另一種方法是將項目保存在單獨的列表中,一旦ComboBox的SelectedItem更改,就會通過linq查詢來實現對ListBox.DataSource屬性的過濾器。

您需要處理ListBox的數據源,說它是文件名列表
完成擴展:

List<string> files = new List<string>();  // sample DataSource

從ComboBoxto中獲取選定的擴展名,並使用它來訂購ListBox DataSource(文件)。

       string fileExtemsion;               

       var orderedFiles = files.OrderBy(o => o.EndsWith(fileExtemsion)); // order          

       listBox.DataSource = orderedFiles;       // setting Datasource 
       listBox.DataBind();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM