TextBox.AutoCompleteSource 属性


获取或设置一个值,该值指定用于自动完成的完整字符串的源。Gets or sets a value specifying the source of complete strings used for automatic completion.

 property System::Windows::Forms::AutoCompleteSource AutoCompleteSource { System::Windows::Forms::AutoCompleteSource get(); void set(System::Windows::Forms::AutoCompleteSource value); };
public System.Windows.Forms.AutoCompleteSource AutoCompleteSource { get; set; }
member this.AutoCompleteSource : System.Windows.Forms.AutoCompleteSource with get, set
Public Property AutoCompleteSource As AutoCompleteSource


AutoCompleteSource 的值之一。One of the values of AutoCompleteSource. 这些选项为 AllSystemSourcesAllUrlFileSystemHistoryListRecentlyUsedListCustomSourceNoneThe options are AllSystemSources, AllUrl, FileSystem, HistoryList, RecentlyUsedList, CustomSource, and None. 默认值为 NoneThe default is None.



指定的值不是 AutoCompleteSource 值之一。The specified value is not one of the values of AutoCompleteSource.


下面的代码示例演示如何使用集合作为 TextBox 控件的自动完成自定义源。The following code example demonstrates how to use a collection as the auto-complete custom source for a TextBox control. 此示例将执行下列操作:This example does the following:

private void Form1_Load(object sender, EventArgs e)
    // Create the list to use as the custom source. 
    var source = new AutoCompleteStringCollection();
    source.AddRange(new string[]

    // Create and initialize the text box.
    var textBox = new TextBox
                      AutoCompleteCustomSource = source,
                      AutoCompleteMode = 
                      AutoCompleteSource =
                      Location = new Point(20, 20),
                      Width = ClientRectangle.Width - 40,
                      Visible = true

    // Add the text box to the form.
Private Sub Form1_Load(ByVal sender As System.Object, _
                       ByVal e As System.EventArgs) Handles MyBase.Load

    ' Create the list to use as the custom source.
    Dim MySource As New AutoCompleteStringCollection()
    MySource.AddRange(New String() _
                        { _
                            "January", _
                            "February", _
                            "March", _
                            "April", _
                            "May", _
                            "June", _
                            "July", _
                            "August", _
                            "September", _
                            "October", _
                            "November", _
                            "December" _

    ' Create and initialize the text box.
    Dim MyTextBox As New TextBox()
    With MyTextBox
        .AutoCompleteCustomSource = MySource
        .AutoCompleteMode = AutoCompleteMode.SuggestAppend
        .AutoCompleteSource = AutoCompleteSource.CustomSource
        .Location = New Point(20, 20)
        .Width = Me.ClientRectangle.Width - 40
        .Visible = True
    End With

    ' Add the text box to the form.
End Sub


使用 "AutoCompleteCustomSource"、"AutoCompleteMode" 和 "AutoCompleteSource" 属性创建一个自动完成输入字符串的 TextBox,方法是将所输入的前缀与维护的源中的所有字符串的前缀进行比较。Use the AutoCompleteCustomSource, AutoCompleteMode, and AutoCompleteSource properties to create a TextBox that automatically completes input strings by comparing the prefix being entered to the prefixes of all strings in a maintained source. 这对于经常输入 Url、地址、文件名或命令的 TextBox 控件很有用。This is useful for TextBox controls in which URLs, addresses, file names, or commands will be frequently entered.

AutoCompleteCustomSource 属性的使用是可选的,但必须将 AutoCompleteSource 属性设置为 CustomSource,才能使用 AutoCompleteCustomSourceThe use of the AutoCompleteCustomSource property is optional, but you must set the AutoCompleteSource property to CustomSource in order to use AutoCompleteCustomSource.

必须同时使用 AutoCompleteModeAutoCompleteSource 属性。You must use the AutoCompleteMode and AutoCompleteSource properties together.


AutoCompleteSource 在多行 TextBox 控件上不起作用。AutoCompleteSource does not work on multiline TextBox controls.


操作系统可能会限制一次可显示的自定义字符串的数目。The operating system might limit the number of custom strings that can be displayed at once.