我有datagridview,我手动填写它从目录中获取文件名。但我想搜索并过滤它。可能吗?我已经尝试找到一些样本,但所有样本都使用数据源搜索。
这是我填写datagridview的代码;
string folderPath = @"C:\Users\TULPAR\Desktop\elektrik projesi\proje\dosyalar\";
fileName.DataSource = new System.IO.DirectoryInfo(folderPath).GetDirectories();
谢谢。
答案 0 :(得分:1)
可能有更好的方法,但有一种可能性就是只需应用Linq Where语句来刷新DataSource
。例如:
private string folderPath = @"C:\Users\TULPAR\Desktop\elektrik projesi\proje\dosyalar\";
public Form1()
{
this.InitializeComponent();
this.dataGridView1.DataSource = new System.IO.DirectoryInfo(this.folderPath).GetDirectories();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
var src = new System.IO.DirectoryInfo(this.folderPath).GetDirectories().Where(di => di.Name.StartsWith(this.textBox1.Text)).ToArray();
this.dataGridView1.DataSource = src;
}
在这里,我使用TextBox.TextChanged
事件将条目过滤到仅Name
开头的TextBox
输入的条目。我也可以将我的状况改为di.Name.Contains(...)
。巧合的是,当TextBox
被清空时,所有目录都显示出来。
您可以使用其他事件,也可以不使用任何事件,具体取决于您希望如何完成此操作。条件也取决于你。但一般的想法是将您的DataSource
重置为相同来源的过滤版本。