关于 syncfusion-winforms-multiselect-combobox
这项技能介绍如何在 Windows Forms 应用中实现 Syncfusion MultiSelectionComboBox,涵盖多选呈现、数据绑定、建议、样式和选择事件。
主要功能
- 01多种多选显示模式
- 02可移除的标签项
- 03绑定常见数据集合
- 04自动建议选项
- 05分组与视觉主题
- 06选择及项集合事件
适用场景
- 01在 WinForms 窗体中添加多选下拉框
- 02以可移除标签显示选中项
- 03从 DataTable 绑定选项
- 04在应用中处理选择变化
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ syncfusion/ winforms-ui-components-skills --skill syncfusion-winforms-multiselect-combobox安装后在 Claude Code 中输入/syncfusion-winforms-multiselect-combobox确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/data-binding.mddisplay-modes-and-visual-items.mdevents-and-advanced-features.mdgetting-started.mdstyling-and-customization.md详细介绍
实现 MultiSelectionComboBox
MultiSelectionComboBox 是一种 WinForms ComboBox 控件,支持多项选择和自动建议。选中的项可以显示为可移除的标签(VisualItem 模式)、以逗号分隔的文本(Delimiter 模式)或单个值(Normal 模式)。它支持通过 DataSource/DisplayMember/ValueMember 进行数据绑定、Office 风格的视觉主题、分组以及丰富的事件模型。
何时使用此技能
- 在 Windows Forms 应用程序中添加多选下拉列表
- 将选中的值显示为带关闭按钮的标签
- 将组合框绑定到
DataTable、DataView或ArrayList - 配置自动建议行为(
AutoSuggestMode) - 按首字母对下拉列表项分组
- 设置下拉列表或可视标签的样式
- 处理选择更改和可视项集合事件
文档与导航指南
入门
📄 阅读: references/getting-started.md
- 程序集引用和 NuGet 包设置
- 通过 Designer 或代码隐藏添加控件
- 命名空间导入(C# 和 VB.NET)
- 使用
ButtonStyle、UseVisualStyle和Size进行基本实例化 - 最小可运行示例
显示模式与可视项输入
📄 阅读: references/display-modes-and-visual-items.md
DisplayMode.VisualItem— 带移除按钮的标签DisplayMode.DelimiterMode— 以逗号分隔的文本DisplayMode.NormalMode— 单值选择AutoSizeMode:Vertical、Horizontal、NoneVisualItemInputMode:DisplayMemberMode、ValueMemberMode、VisualItemMode- 自定义分隔符
数据绑定
📄 阅读: references/data-binding.md
- 绑定到
ArrayList、DataView和DataTable DataSource、DisplayMember、ValueMember属性- 完整的外部数据源绑定示例
DataSourceChanged事件处理
样式与自定义
📄 阅读: references/styling-and-customization.md
- 视觉样式:Default、Office2016Colorful、Office2016White、Office2016Black、Office2016DarkGray
- 下拉列表样式:
ShowCheckBox、分组标题颜色、项和下拉列表尺寸 - 可视标签颜色:BackColor、ForeColor、SelectionColor、BorderColor
- 分组:
ShowGroups、运行时启用/禁用 - 自动建议模式:
Begin、Match、Disabled
事件与高级功能
📄 阅读: references/events-and-advanced-features.md
SelectedItemCollectionChanged— 选中项更改时触发VisualItemCollectionChanged— 添加或移除可视标签时触发AutoSizeModeChanged、DataSourceChanged、DropDown事件- 在运行时检测 VisualItemCollection 的修改
快速入门
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)
常见模式
绑定到 DataTable 并显示为标签
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;
响应选择更改
combo.SelectedItemCollectionChanged += (sender, e) =>
{
if (e.Action == Actions.Added)
Console.WriteLine("Added: " + e.SelectedItems[0]);
else
Console.WriteLine("Removed: " + e.SelectedItems[0]);
};
应用 Office 2016 Colorful 主题
combo.Style = MultiSelectionComboBoxStyle.Office2016Colorful;
关键属性
| 属性 | 用途 |
|---|---|
DisplayMode | VisualItem / DelimiterMode / NormalMode |
AutoSuggestMode | Begin / Match / Disabled |
AutoSizeMode | Vertical / Horizontal / None |
ShowCheckBox | 在下拉列表中显示复选框 |
ShowGroups | 按首字母对项分组 |
DelimiterChar | 分隔符(Delimiter 模式) |
DataSource | 绑定到 ArrayList、DataView、DataTable |
DisplayMember | 控件中显示的属性名称 |
ValueMember | 用作实际值的属性 |
Style | 视觉主题(Office2016Colorful 等) |
VisualItemInputMode | DisplayMemberMode / ValueMemberMode / VisualItemMode |
评论
支持 Markdown