[英]How can I get C# textbox autocomplete to make suggestions based on contains rather than starts with?
[英]C# How can I get a textbox suggestions list into a list<string>?
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定義為實現IList
, ICollection
和IEnumerable
。 因此,您可以使用任何可訪問List
, Collection
或Enumeration
。 由你決定。
總結一下下面的評論,以訪問除CustomSource
以外的其他內容的自動完成項列表,您可能需要連接Windows API,或者使用反射(盡管這種情況不太可能,但Windows API最多)可能有效)。
根據我的研究,我確實相信沒有直接方法可以將AutoCompleteSource
設置為已定義的值之一來獲取有關TextBox
控件的建議列表。
這個問題的答案的作者: 如何使TextBox的自動完成列表可編輯? 建議閱讀CP的文章: C#做Shell,第4部分 ,以便能夠使用AutoComplete
擴展在編輯框中編寫的字符串。
要達到此結果:
您可以按照以下兩種方法進行操作,即按環境選擇“屬性”選項卡,並設置以下屬性:
最好的方法是通過代碼創建此效果,請參見以下示例:
AutoCompleteStringCollection sourceName = new AutoCompleteStringCollection();
foreach (string name in listNames)
{
sourceName.Add(name);
}
txtName.AutoCompleteCustomSource = sourceName;
txtName.AutoCompleteMode = AutoCompleteMode.Suggest;
txtName.AutoCompleteSource = AutoCompleteSource.CustomSource;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.