Skip to main content

syncfusion-winforms-autocomplete

Guides implementation of the Syncfusion WinForms AutoComplete control for text input with auto-suggestion functionality. Use when users want to add autocomplete textboxes, implement auto-suggestion features, create search boxes with suggestions, enable URL/email autocomplete, or build type-ahead search functionality in Windows desktop applications. Covers data binding, customization, filtering, multi-column dropdowns, events, and all AutoComplete-specific features.

ソース情報

リポジトリ
syncfusion/winforms-ui-components-skills
ソースの最終更新活動
2026年7月6日 07:19
検出された SKILL.md の言語
英語
スター
2
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
8 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
syncfusion-winforms-autocomplete
description
Guides implementation of the Syncfusion WinForms AutoComplete control for text input with auto-suggestion functionality. Use when users want to add autocomplete textboxes, implement auto-suggestion features, create search boxes with suggestions, enable URL/email autocomplete, or build type-ahead search functionality in Windows desktop applications. Covers data binding, customization, filtering, multi-column dropdowns, events, and all AutoComplete-specific features.
metadata
{"author":"Syncfusion Inc","version":"34.1.29"}
# Syncfusion WinForms AutoComplete Control The AutoComplete control provides auto-suggestion functionality for text input fields in Windows Forms applications. It displays a dropdown list of suggestions as users type, enabling faster data entry and improved user experience with intelligent text completion. ## When to Use This Skill Use the AutoComplete control when you need to: - Add auto-suggestion to text input fields - Implement type-ahead search functionality - Create search boxes with intelligent suggestions - Enable URL or email address autocomplete - Build forms with frequently repeated input - Provide filtered suggestions from large datasets - Implement custom dropdown behaviors with multi-column displays ## Installation ### NuGet Installation ```bash Install-Package Syncfusion.Tools.Windows ``` ### Assembly Reference Add reference to: - `Syncfusion.Tools.Windows.dll` - `Syncfusion.Shared.Base.dll` ## Quick Start ### Basic Setup ```csharp using System; using System.Windows.Forms; using Syncfusion.Windows.Forms.Tools; namespace AutoCompleteDemo { public partial class Form1 : Form { private AutoComplete autoComplete1; private TextBox textBox1; public Form1() { InitializeComponent(); // Create AutoComplete control autoComplete1 = new AutoComplete(); textBox1 = new TextBox(); textBox1.Location = new System.Drawing.Point(20, 20); textBox1.Size = new System.Drawing.Size(200, 20); autoComplete1.ParentForm = this; // Add data source autoComplete1.DataSource = new string[] { "Australia", "Austria", "Brazil", "Canada", "China" }; autoComplete1.SetAutoComplete(textBox1, AutoCompleteModes.AutoSuggest); // Add to form this.Controls.Add(textBox1); } } } ``` ### Designer Setup 1. Drag `AutoComplete` control from Toolbox to Form 2. Set the `ParentForm` property to current form 3. Configure `DataSource` through Properties window or code 4. Customize appearance and behavior through Properties ## Core Concepts ### Data Source The AutoComplete control can bind to various data sources: - String arrays - Generic collections (List<T>, ArrayList) - DataTable and DataSet - Custom objects with IList interface ### Parent Form The `ParentForm` property must be set to enable the control to display the dropdown suggestion list. This associates the AutoComplete with the parent form's container. ### Filtering Built-in filtering automatically matches user input against the data source, displaying relevant suggestions as the user types. ## Navigation Guide ### 🚀 Getting Started 📄 **Read:** [references/getting-started.md](references/getting-started.md) - Installation and assembly references - Creating WinForms application - Adding AutoComplete control via Designer - Adding AutoComplete control programmatically - Basic configuration and setup - Running the application ### 📊 Working with Data Sources 📄 **Read:** [references/datasource.md](references/datasource.md) - Binding to string collections - Binding to DataTable and DataSet - Binding to custom objects - Multiple data sources - Setting data source at design time - Dynamic data source updates ### 🎨 Customization 📄 **Read:** [references/customization.md](references/customization.md) - Visual styles and themes - Font and color customization - Border styles - Dropdown appearance - Auto-size configuration - Column appearance in dropdown - Highlight matching text - Custom rendering ### 🔧 Working with AutoComplete 📄 **Read:** [references/working-with-autocomplete.md](references/working-with-autocomplete.md) - Auto-complete modes (Suggest, Append, SuggestAppend) - Character casing - Loading behavior - Auto-population - Default suggestions - Clearing and resetting values - Programmatic selection ### 📑 Multi-Column Dropdown 📄 **Read:** [references/multicolumn-dropdown.md](references/multicolumn-dropdown.md) - Enabling multi-column mode - Column configuration - Column headers - Column width and sizing - Displaying multiple fields - Custom column formatting - Images in dropdown items - Grid-like appearance ### ⚡ Events 📄 **Read:** [references/autocomplete-events.md](references/autocomplete-events.md) - AutoCompleteCustomize event - AutoCompleteValueChanged event - BeforeCustomization event - Handling user selections - Validating input - Custom event handlers ### 🎯 Overview 📄 **Read:** [references/overview.md](references/overview.md) - Feature overview - Use cases and scenarios - Component architecture - Performance considerations - Best practices ## Common Patterns ### Pattern 1: Simple String AutoComplete ```csharp AutoComplete autoComplete1 = new AutoComplete(); TextBox textBox1 = new TextBox(); textBox1.Location = new System.Drawing.Point(20, 20); textBox1.Size = new System.Drawing.Size(200, 20); autoComplete1.ParentForm = this; autoComplete1.SetAutoComplete(textBox1, AutoCompleteModes.AutoSuggest); // Add string data autoComplete1.DataSource = new string[] { "John", "Jane", "Bob", "Alice", "Charlie" }; this.Controls.Add(textBox1); ``` ### Pattern 2: DataTable Binding ```csharp AutoComplete autoComplete1 = new AutoComplete(); TextBox textBox1 = new TextBox(); textBox1.Location = new System.Drawing.Point(20, 50); textBox1.Size = new System.Drawing.Size(200, 20); autoComplete1.ParentForm = this; // Create DataTable DataTable dt = new DataTable(); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Email", typeof(string)); dt.Rows.Add("John Doe", "john@example.com"); dt.Rows.Add("Jane Smith", "jane@example.com"); autoComplete1.DataSource = dt; this.Controls.Add(textBox1); ``` ### Pattern 3: Multi-Column Display ```csharp AutoComplete autoComplete1 = new AutoComplete(); TextBox textBox1 = new TextBox(); textBox1.Location = new System.Drawing.Point(20, 50); textBox1.Size = new System.Drawing.Size(200, 20); autoComplete1.ParentForm = this; autoComplete1.Style = AutoCompleteStyle.Default; // Create DataTable with multiple columns DataTable dt = new DataTable(); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Country", typeof(string)); dt.Columns.Add("City", typeof(string)); dt.Rows.Add("John Doe", "USA", "New York"); dt.Rows.Add("Jane Smith", "UK", "London"); dt.Rows.Add("Bob Johnson", "Canada", "Toronto"); autoComplete1.DataSource = dt; // Configure columns autoComplete1.Columns.Add(new AutoCompleteDataColumnInfo("Name", 100, true)); autoComplete1.Columns.Add(new AutoCompleteDataColumnInfo("Country", 80, true)); autoComplete1.Columns.Add(new AutoCompleteDataColumnInfo("City", 80, true)); this.Controls.Add(textBox1); ``` ### Pattern 4: Custom Filtering with Events ```csharp AutoComplete autoComplete1 = new AutoComplete(); TextBox textBox1 = new TextBox(); textBox1.Location = new System.Drawing.Point(20, 50); textBox1.Size = new System.Drawing.Size(200, 20); autoComplete1.ParentForm = this; autoComplete1.DataSource = GetDataSource(); // Attach AutoComplete to the TextBox autoComplete1.SetAutoComplete(textBox1, AutoCompleteModes.AutoSuggest); // Subscribe when the dropdown is displayed so the popup list is initialized autoComplete1.DropDownDisplayed += (s, e) => { var lv = autoComplete1.AutoCompletePopup.Controls[0] as VirtualListView; if (lv != null) { lv.DrawItem -= ItemsListView_DrawItem; lv.DrawItem += ItemsListView_DrawItem; } }; void ItemsListView_DrawItem(object sender, DrawListViewItemEventArgs e) { if (e.Item != null) { e.DrawBackground(); var text = e.Item.Text; using (var brush = new SolidBrush(e.Item.ForeColor)) { e.Graphics.DrawString(text, e.Item.Font ?? e.Item.ListView.Font, brush, e.Bounds); } e.DrawFocusRectangle(); } } this.Controls.Add(textBox1); ``` ### Pattern 5: URL/Email AutoComplete ```csharp AutoComplete autoComplete1 = new AutoComplete(); TextBox textBox1 = new TextBox(); textBox1.Location = new System.Drawing.Point(20, 50); textBox1.Size = new System.Drawing.Size(200, 20); autoComplete1.ParentForm = this; // Common URLs autoComplete1.DataSource = new string[] { "http://www.syncfusion.com", "http://www.google.com", "http://www.microsoft.com", "http://www.github.com" }; // Enable append mode for URL completion autoComplete1.SetAutoComplete(textBox1, AutoCompleteModes.Both); this.Controls.Add(textBox1); ``` ## Key Properties Reference | Property | Type | Default | Description | |----------|------|---------|-------------| | `DataSource` | object | null | Data source for suggestions (array, DataTable, etc.) | | `ParentForm` | Form | null | Parent form containing the control (required) | | `AutoCompleteMode` | AutoCompleteMode | Suggest | Behavior mode: None, Suggest, Append, SuggestAppend | | `DisplayMember` | string | "" | Property name to display from data source | | `ValueMember` | string | "" | Property name for internal value | | `Columns` | AutoCompleteDataColumnInfoCollection | - | Column configuration for multi-column display | | `Style` | AutoCompleteStyle | Default | Visual style of the control | | `Text` | string | "" | Current text value | | `SelectedValue` | object | null | Currently selected value | | `CharacterCasing` | CharacterCasing | Normal | Text casing: Normal, Upper, Lower | | `LoadOnDemand` | bool | false | Load suggestions on demand | | `AutoCompleteControl` | AutoCompletePopup | - | Access to underlying popup control | ## Events Common events for the AutoComplete control: - **AutoCompleteValueChanged**: Triggered when selected value changes - **AutoCompleteCustomize**: Before displaying the dropdown list - **BeforeCustomization**: Before applying customization - **TextChanged**: When text content changes - **SelectedIndexChanged**: When selection changes - **GotFocus**: When control receives focus - **LostFocus**: When control loses focus ## Best Practices 1. **Always Set ParentForm**: The `ParentForm` property is mandatory for the dropdown to work properly 2. **Use Appropriate Mode**: Choose the right `AutoCompleteMode`: - `Suggest`: Show dropdown only - `Append`: Auto-complete text only - `SuggestAppend`: Both dropdown and text completion 3. **Optimize Large Datasets**: Use `LoadOnDemand` for large data sources to improve performance 4. **Multi-Column for Complex Data**: Use multi-column display when showing related information 5. **Handle Events Properly**: Use `AutoCompleteValueChanged` to respond to user selections 6. **Clear Data Appropriately**: Call `ResetItems()` or set `DataSource = null` to clear suggestions 7. **Consider Character Casing**: Set `CharacterCasing` based on data type (e.g., Upper for state codes) 8. **Theme Consistency**: Use matching visual styles across all Syncfusion controls ## Visual Styles The control supports multiple visual themes: - Default - Office2016Colorful - Office2016White - Office2016Black - Office2016DarkGray - Metro - Office2007 - Office2010 - VS2010 ```csharp autoComplete1.Style = AutoCompleteStyle.Office2016Colorful; ``` ## Framework Support - .NET Framework 4.5 and above - .NET 6.0, .NET 7.0, .NET 8.0 (Windows) - .NET Core 3.1 (Windows) ## Additional Resources - [Syncfusion AutoComplete Documentation](https://help.syncfusion.com/windowsforms/autocomplete/overview) - [API Reference](https://help.syncfusion.com/cr/windowsforms/Syncfusion.Windows.Forms.Tools.AutoComplete.html) - [Knowledge Base Articles](https://www.syncfusion.com/kb/windowsforms/autocomplete) - [GitHub Samples](https://github.com/syncfusion/winforms-demos) ## Troubleshooting **Issue**: Dropdown doesn't appear - Ensure `ParentForm` property is set - Check that `DataSource` contains valid data - Verify control is added to form's Controls collection **Issue**: Multi-column not displaying - Set appropriate `AutoCompleteStyle` - Add columns to `Columns` collection - Ensure DataSource has matching column names **Issue**: Performance issues with large datasets - Enable `LoadOnDemand` property - Reduce the number of columns displayed - Consider filtering data source before binding **Issue**: Styling not applied - Ensure Syncfusion theme DLLs are referenced - Apply style after setting DataSource - Check for conflicting custom drawing code
GitHubで見る