繁体   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