KryptonComboBox ✓ LCode 已集成 Toolkit
命名空间:Krypton.Toolkit · 程序集:Krypton.Toolkit.dll
简介
KryptonComboBox 是增强型下拉框控件,替代标准 System.Windows.Forms.ComboBox。它跟随 Krypton 主题渲染,下拉列表项支持主题高亮,支持数据绑定、可编辑 / 只读下拉模式,以及水印提示。常用于选择分类、状态、语言等枚举型字段。
常用属性
| 属性 | 类型 | 说明 |
|---|---|---|
Items | 集合 | 下拉列表项集合 |
SelectedIndex | int | 选中项索引(-1 表示未选) |
SelectedItem | object | 选中的项对象 |
SelectedValue | object | 选中项的值(配合 ValueMember) |
Text | string | 编辑区文字 |
DropDownStyle | ComboBoxStyle | 下拉样式(DropDown / DropDownList / Simple) |
DataSource | object | 数据源(DataTable / List 等) |
DisplayMember | string | 显示的字段名 |
ValueMember | string | 值的字段名 |
MaxDropDownItems | int | 下拉列表最多显示的行数 |
StateCommon.ComboBox.Content.Font | Font | 文字字体 |
Hint | string | 水印提示文字 |
快速上手
基本用法(静态选项)
using Krypton.Toolkit;
// 创建下拉框
var cmbStatus = new KryptonComboBox();
cmbStatus.Items.AddRange(new object[] { "待处理", "进行中", "已完成", "已取消" });
cmbStatus.SelectedIndex = 0;
cmbStatus.DropDownStyle = ComboBoxStyle.DropDownList;
cmbStatus.Location = new Point(20, 20);
cmbStatus.Size = new Size(150, 25);
// 选择变化事件
cmbStatus.SelectedIndexChanged += (s, e) =>
{
var status = cmbStatus.SelectedItem.ToString();
FilterByStatus(status);
};
this.Controls.Add(cmbStatus);
数据绑定
// 绑定 DataTable
var cmbCategory = new KryptonComboBox();
cmbCategory.DataSource = categoryTable;
cmbCategory.DisplayMember = "CategoryName";
cmbCategory.ValueMember = "CategoryId";
cmbCategory.SelectedIndex = -1; // 默认不选
// 获取选中的值
cmbCategory.SelectedValueChanged += (s, e) =>
{
if (cmbCategory.SelectedValue != null)
{
int categoryId = Convert.ToInt32(cmbCategory.SelectedValue);
LoadProducts(categoryId);
}
};
进阶用法
绑定对象列表
// 绑定自定义对象
public class LanguageItem
{
public string Name { get; set; }
public string Code { get; set; }
public override string ToString() => Name;
}
var cmbLang = new KryptonComboBox();
cmbLang.DataSource = new List
{
new LanguageItem { Name = "简体中文", Code = "zh-CN" },
new LanguageItem { Name = "English", Code = "en-US" },
new LanguageItem { Name = "日本語", Code = "ja-JP" }
};
cmbLang.DisplayMember = "Name";
cmbLang.ValueMember = "Code";
// 获取语言代码
string code = ((LanguageItem)cmbLang.SelectedItem).Code;
可编辑下拉框(自动补全)
// 允许用户输入并自动补全
var cmbCity = new KryptonComboBox();
cmbCity.DropDownStyle = ComboBoxStyle.DropDown; // 可编辑
cmbCity.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
cmbCity.AutoCompleteSource = AutoCompleteSource.ListItems;
cmbCity.Hint = "输入或选择城市";
cmbCity.Items.AddRange(new object[]
{
"北京", "上海", "广州", "深圳", "杭州", "成都"
});
提示:设置
DropDownStyle = DropDownList 可禁止用户输入,只能从列表选择。数据绑定时建议在填充数据前先设置 DisplayMember 和 ValueMember,避免触发多次 SelectedIndexChanged。
对应示例项目
📁 Source/Krypton Toolkit Examples/KryptonComboBox Examples/
包含:静态选项、数据绑定、可编辑补全、对象列表绑定演示。