C#如何将文本框建议列表添加到列表中?

例如说我同意

textBox1.AutoCompleteSource = AutoCompleteSource.FileSystemDirectories
要么
    textBox1.AutoCompleteSource = AutoCompleteSource.RecentlyUsedList



textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;

我在文本框的弹出建议窗口中收到建议,但是我可以在列表中检索这些建议吗?

最佳答案

您将需要通过以下方式设置TextBox

AutoCompleteStringCollection source = new AutoCompleteStringCollection();
// Add each item to the collection
source.Add("some string");
TextBox textBox = new TextBox();
textBox.AutoCompleteSource = AutoCompleteSource.CustomSource;
textBox.AutoCompleteCustomSource = source;


然后,您可以通过执行以下操作在其他任何地方访问这些项目:

foreach(string item in textBox.AutoCompleteCustomSource)
{
   Console.WriteLine(item);
}


或者,根据需要,现在将textBox.AutoCompleteSource定义为实现IListICollectionIEnumerable的类。因此,您可以使用任何可访问ListCollectionEnumeration的方法。由你决定。

为了总结下面的评论,要访问除CustomSource以外的其他内容的自动完成项列表,您可能需要连接Windows API,或者使用反射(尽管不太可能,Windows API可能是最有可能工作)。

关于c# - C#如何将文本框建议列表添加到list <string>中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37092814/

10-16 09:03