簡體   English   中英

C#如何將文本框建議列表添加到列表中 <string> ?

[英]C# How can I get a textbox suggestions list into a list<string>?

C#如何將文本框建議列表添加到列表中?

例如說我

textBox1.AutoCompleteSource = AutoCompleteSource.FileSystemDirectoriestextBox1.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最多)可能有效)。

根據我的研究,我確實相信沒有直接方法可以將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM