Implementing MultiSelectionComboBox
The MultiSelectionComboBox is a WinForms ComboBox control that supports multiple item selection and auto-suggestion. Selected items can be displayed as removable tag chips (VisualItem mode), comma-separated text (Delimiter mode), or single-value (Normal mode). It supports data binding via DataSource/DisplayMember/ValueMember, Office-style visual themes, grouping, and a rich event model.
When to Use This Skill
- Adding a multi-select dropdown to a Windows Forms application
- Displaying selected values as tag chips with close buttons
- Binding the combo box to a
DataTable, DataView, or ArrayList
- Configuring auto-suggestion behavior (
AutoSuggestMode)
- Grouping dropdown items by initial character
- Styling the drop-down list or visual item tags
- Handling selection change and visual item collection events
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- Assembly references and NuGet package setup
- Adding the control via Designer or code-behind
- Namespace imports (C# and VB.NET)
- Basic instantiation with
ButtonStyle, UseVisualStyle, and Size
- Minimal working example
Display Modes & Visual Item Input
📄 Read: references/display-modes-and-visual-items.md
DisplayMode.VisualItem — tag chips with remove buttons
DisplayMode.DelimiterMode — comma-separated text
DisplayMode.NormalMode — single-value selection
AutoSizeMode: Vertical, Horizontal, None
VisualItemInputMode: DisplayMemberMode, ValueMemberMode, VisualItemMode
- Delimiter character customization
Data Binding
📄 Read: references/data-binding.md
- Binding to
ArrayList, DataView, and DataTable
DataSource, DisplayMember, ValueMember properties
- Complete external data source binding example
DataSourceChanged event handling
Styling & Customization
📄 Read: references/styling-and-customization.md
- Visual styles: Default, Office2016Colorful, Office2016White, Office2016Black, Office2016DarkGray
- Drop-down styling:
ShowCheckBox, group header colors, item/drop-down dimensions
- Visual item tag colors: BackColor, ForeColor, SelectionColor, BorderColor
- Grouping:
ShowGroups, runtime enable/disable
- Auto-suggestion modes:
Begin, Match, Disabled
Events & Advanced Features
📄 Read: references/events-and-advanced-features.md
SelectedItemCollectionChanged — when the selected items change
VisualItemCollectionChanged — when visual item tags are added/removed
AutoSizeModeChanged, DataSourceChanged, DropDown events
- Detecting VisualItemCollection modifications at runtime
Quick Start
using Syncfusion.Windows.Forms.Tools;
using Syncfusion.Windows.Forms;
// Create and configure the control
var combo = new MultiSelectionComboBox();
combo.ButtonStyle = ButtonAppearance.Metro;
combo.UseVisualStyle = true;
combo.Size = new System.Drawing.Size(250, 30);
combo.DisplayMode = DisplayMode.VisualItem;
// Add items manually
combo.Items.AddRange(new object[] { "Apple", "Banana", "Cherry", "Date", "Elderberry" });
this.Controls.Add(combo);
Imports Syncfusion.Windows.Forms.Tools
Imports Syncfusion.Windows.Forms
Dim combo As New MultiSelectionComboBox()
combo.ButtonStyle = ButtonAppearance.Metro
combo.UseVisualStyle = True
combo.Size = New System.Drawing.Size(250, 30)
combo.DisplayMode = DisplayMode.VisualItem
combo.Items.AddRange(New Object() {"Apple", "Banana", "Cherry"})
Me.Controls.Add(combo)
Common Patterns
Bind to a DataTable and display as tag chips
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Name");
dt.Rows.Add("1", "Alice");
dt.Rows.Add("2", "Bob");
dt.Rows.Add("3", "Carol");
combo.DataSource = dt;
combo.DisplayMember = "Name";
combo.ValueMember = "ID";
combo.DisplayMode = DisplayMode.VisualItem;
React to selection changes
combo.SelectedItemCollectionChanged += (sender, e) =>
{
if (e.Action == Actions.Added)
Console.WriteLine("Added: " + e.SelectedItems[0]);
else
Console.WriteLine("Removed: " + e.SelectedItems[0]);
};
Apply Office 2016 Colorful theme
combo.Style = MultiSelectionComboBoxStyle.Office2016Colorful;
Key Properties
| Property |
Purpose |
DisplayMode |
VisualItem / DelimiterMode / NormalMode |
AutoSuggestMode |
Begin / Match / Disabled |
AutoSizeMode |
Vertical / Horizontal / None |
ShowCheckBox |
Show checkboxes in the dropdown |
ShowGroups |
Group items by initial character |
DelimiterChar |
Separator character (Delimiter mode) |
DataSource |
Bind to ArrayList, DataView, DataTable |
DisplayMember |
Property name shown in the control |
ValueMember |
Property used as the actual value |
Style |
Visual theme (Office2016Colorful, etc.) |
VisualItemInputMode |
DisplayMemberMode / ValueMemberMode / VisualItemMode |
1---2name: syncfusion-winforms-multiselect-combobox3description: Guide for implementing the Syncfusion Windows Forms MultiSelectionComboBox control — a ComboBox with multi-item selection, auto-suggestion, and tag-style visual items. Use this skill when the user mentions MultiSelectionComboBox, WinForms multi-select combo, or Syncfusion.Windows.Forms.Tools.MultiSelectionComboBox, or needs a combo box that allows selecting multiple items in a Windows Forms application. Applies when configuring display modes, binding data sources, styling visual items, handling SelectedItemCollectionChanged, or setting AutoSuggestMode.4---56# Implementing MultiSelectionComboBox78The MultiSelectionComboBox is a WinForms ComboBox control that supports **multiple item selection** and **auto-suggestion**. Selected items can be displayed as removable tag chips (VisualItem mode), comma-separated text (Delimiter mode), or single-value (Normal mode). It supports data binding via `DataSource`/`DisplayMember`/`ValueMember`, Office-style visual themes, grouping, and a rich event model.910## When to Use This Skill1112- Adding a multi-select dropdown to a Windows Forms application13- Displaying selected values as tag chips with close buttons14- Binding the combo box to a `DataTable`, `DataView`, or `ArrayList`15- Configuring auto-suggestion behavior (`AutoSuggestMode`)16- Grouping dropdown items by initial character17- Styling the drop-down list or visual item tags18- Handling selection change and visual item collection events1920## Documentation and Navigation Guide2122### Getting Started23📄 **Read:** [references/getting-started.md](references/getting-started.md)24- Assembly references and NuGet package setup25- Adding the control via Designer or code-behind26- Namespace imports (C# and VB.NET)27- Basic instantiation with `ButtonStyle`, `UseVisualStyle`, and `Size`28- Minimal working example2930### Display Modes & Visual Item Input31📄 **Read:** [references/display-modes-and-visual-items.md](references/display-modes-and-visual-items.md)32- `DisplayMode.VisualItem` — tag chips with remove buttons33- `DisplayMode.DelimiterMode` — comma-separated text34- `DisplayMode.NormalMode` — single-value selection35- `AutoSizeMode`: Vertical, Horizontal, None36- `VisualItemInputMode`: DisplayMemberMode, ValueMemberMode, VisualItemMode37- Delimiter character customization3839### Data Binding40📄 **Read:** [references/data-binding.md](references/data-binding.md)41- Binding to `ArrayList`, `DataView`, and `DataTable`42- `DataSource`, `DisplayMember`, `ValueMember` properties43- Complete external data source binding example44- `DataSourceChanged` event handling4546### Styling & Customization47📄 **Read:** [references/styling-and-customization.md](references/styling-and-customization.md)48- Visual styles: Default, Office2016Colorful, Office2016White, Office2016Black, Office2016DarkGray49- Drop-down styling: `ShowCheckBox`, group header colors, item/drop-down dimensions50- Visual item tag colors: BackColor, ForeColor, SelectionColor, BorderColor51- Grouping: `ShowGroups`, runtime enable/disable52- Auto-suggestion modes: `Begin`, `Match`, `Disabled`5354### Events & Advanced Features55📄 **Read:** [references/events-and-advanced-features.md](references/events-and-advanced-features.md)56- `SelectedItemCollectionChanged` — when the selected items change57- `VisualItemCollectionChanged` — when visual item tags are added/removed58- `AutoSizeModeChanged`, `DataSourceChanged`, `DropDown` events59- Detecting VisualItemCollection modifications at runtime6061## Quick Start6263```csharp64using Syncfusion.Windows.Forms.Tools;65using Syncfusion.Windows.Forms;6667// Create and configure the control68var combo = new MultiSelectionComboBox();69combo.ButtonStyle = ButtonAppearance.Metro;70combo.UseVisualStyle = true;71combo.Size = new System.Drawing.Size(250, 30);72combo.DisplayMode = DisplayMode.VisualItem;7374// Add items manually75combo.Items.AddRange(new object[] { "Apple", "Banana", "Cherry", "Date", "Elderberry" });7677this.Controls.Add(combo);78```7980```vb81Imports Syncfusion.Windows.Forms.Tools82Imports Syncfusion.Windows.Forms8384Dim combo As New MultiSelectionComboBox()85combo.ButtonStyle = ButtonAppearance.Metro86combo.UseVisualStyle = True87combo.Size = New System.Drawing.Size(250, 30)88combo.DisplayMode = DisplayMode.VisualItem89combo.Items.AddRange(New Object() {"Apple", "Banana", "Cherry"})90Me.Controls.Add(combo)91```9293## Common Patterns9495### Bind to a DataTable and display as tag chips9697```csharp98DataTable dt = new DataTable();99dt.Columns.Add("ID");100dt.Columns.Add("Name");101dt.Rows.Add("1", "Alice");102dt.Rows.Add("2", "Bob");103dt.Rows.Add("3", "Carol");104105combo.DataSource = dt;106combo.DisplayMember = "Name";107combo.ValueMember = "ID";108combo.DisplayMode = DisplayMode.VisualItem;109```110111### React to selection changes112113```csharp114combo.SelectedItemCollectionChanged += (sender, e) =>115{116 if (e.Action == Actions.Added)117 Console.WriteLine("Added: " + e.SelectedItems[0]);118 else119 Console.WriteLine("Removed: " + e.SelectedItems[0]);120};121```122123### Apply Office 2016 Colorful theme124125```csharp126combo.Style = MultiSelectionComboBoxStyle.Office2016Colorful;127```128129## Key Properties130131| Property | Purpose |132|---|---|133| `DisplayMode` | VisualItem / DelimiterMode / NormalMode |134| `AutoSuggestMode` | Begin / Match / Disabled |135| `AutoSizeMode` | Vertical / Horizontal / None |136| `ShowCheckBox` | Show checkboxes in the dropdown |137| `ShowGroups` | Group items by initial character |138| `DelimiterChar` | Separator character (Delimiter mode) |139| `DataSource` | Bind to ArrayList, DataView, DataTable |140| `DisplayMember` | Property name shown in the control |141| `ValueMember` | Property used as the actual value |142| `Style` | Visual theme (Office2016Colorful, etc.) |143| `VisualItemInputMode` | DisplayMemberMode / ValueMemberMode / VisualItemMode |