gpt4 book ai didi

c# - 如何为 ComboBox 中的文件列表启用自动完成

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:11 28 4
gpt4 key购买 nike

我试图获取用户桌面上的所有“.txt”文件,并将它们作为自定义源显示在 ComboBox 中,如下所示。顺便说一句,我通过 IDE 创建了 ComboBox。下面的代码在 form1_Load 事件中:

string desktop_path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string[] files_on_desktop = System.IO.Directory.GetFiles(desktop_path, "*.txt");
AutoCompleteStringCollection file_collection = new AutoCompleteStringCollection();
file_collection.AddRange(files_on_desktop);
comboBox1.AutoCompleteCustomSource = file_collection;
comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
comboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;

这似乎不起作用,尽管我尝试了许多不同的方法以及许多支持代码,例如“this.Refresh()combobox.Refresh() ".

当我打开下拉菜单时它不显示文件,当我开始输入时它也不显示文件。

实际上,每当我尝试动态地做一些我可以在 IDE 上做的事情时,我都会遇到一些问题。

最佳答案

您添加的那些文件包括路径和文件名,例如 C:\Users\R.Aghaei\Desktop\Test.txt。如果您只需要查看文件名,可以使用 System.IO.Path.GetFileName(x) 仅获取文件名。

此外,如果您只想显示这些文件名以用于自动完成,TextBox 就足够了。如果您想使用 ComboBox,最好将这些文件添加到 Items 集合,然后将自动完成源设置为列出项目。

AutoCompleteSource 不同于 Items。您应该将这些文件名添加到 Items 中,以便在您单击下拉按钮时显示。为此,只需使用 comboBox1.Items.AddRange(files_on_desktop);。然后只需将 AutoCompleteSourceMode 设置为 AutoCompleteSource.ListItems。然后你有两个项目和自动完成。如果单击下拉按钮,您将看到所有可用项目。如果您只在框中键入内容,自动完成功能将为您工作。

string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
var files = System.IO.Directory.GetFiles(desktopPath, "*.txt")
.Select(x => System.IO.Path.GetFileName(x)).ToArray();
comboBox1.Items.AddRange(files);
comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;

关于c# - 如何为 ComboBox 中的文件列表启用自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39680183/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com