KryptonDataGridView ✓ LCode 已集成 Toolkit
命名空间:Krypton.Toolkit · 程序集:Krypton.Toolkit.dll
简介
KryptonDataGridView 是增强型数据表格控件,替代标准 System.Windows.Forms.DataGridView。它继承 DataGridView 的全部功能(数据绑定、排序、编辑、列类型等),同时使用 Krypton 主题渲染表头、行、选中态和滚动条,使表格与整体界面风格统一。是管理列表、订单、日志等数据展示的核心控件。
常用属性
| 属性 | 类型 | 说明 |
|---|---|---|
DataSource | object | 数据源(DataTable / BindingList / List 等) |
AutoGenerateColumns | bool | 是否根据数据源自动生成列 |
Columns | 集合 | 列集合(可手动定义列类型和顺序) |
Rows | 集合 | 行集合 |
SelectedRows | 集合 | 当前选中的行 |
SelectionMode | DataGridViewSelectionMode | 选择模式(整行 / 单元格 / 列) |
MultiSelect | bool | 是否允许多选 |
ReadOnly | bool | 是否只读(禁止编辑) |
AllowUserToAddRows | bool | 是否显示末尾的"新增行" |
RowHeadersVisible | bool | 是否显示行号列 |
AutoSizeColumnsMode | DataGridViewAutoSizeColumnsMode | 列宽自适应模式 |
AlternatingRowsDefaultCellStyle | CellStyle | 隔行变色样式 |
快速上手
基本用法(绑定 DataTable)
using Krypton.Toolkit;
// 创建表格
var dgvOrders = new KryptonDataGridView();
dgvOrders.Dock = DockStyle.Fill;
dgvOrders.AutoGenerateColumns = false;
dgvOrders.ReadOnly = true;
dgvOrders.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dgvOrders.AllowUserToAddRows = false;
dgvOrders.RowHeadersVisible = false;
// 手动定义列
dgvOrders.Columns.Add(new DataGridViewTextBoxColumn
{
DataPropertyName = "OrderId",
HeaderText = "订单号",
Width = 100
});
dgvOrders.Columns.Add(new DataGridViewTextBoxColumn
{
DataPropertyName = "Customer",
HeaderText = "客户",
Width = 120
});
dgvOrders.Columns.Add(new DataGridViewTextBoxColumn
{
DataPropertyName = "Amount",
HeaderText = "金额",
Width = 80,
DefaultCellStyle = new DataGridViewCellStyle { Format = "C2" }
});
// 绑定数据
dgvOrders.DataSource = orderTable;
this.Controls.Add(dgvOrders);
绑定对象列表
public class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
public int Stock { get; set; }
}
var products = new BindingList
{
new Product { Name = "键盘", Price = 299m, Stock = 50 },
new Product { Name = "鼠标", Price = 149m, Stock = 120 }
};
dgvProducts.DataSource = products;
dgvProducts.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
进阶用法
隔行变色与选中样式
// 隔行浅灰背景
dgvOrders.AlternatingRowsDefaultCellStyle.BackColor =
Color.FromArgb(249, 250, 251);
// 选中行使用翡翠绿
dgvOrders.DefaultCellStyle.SelectionBackColor =
Color.FromArgb(204, 251, 241);
dgvOrders.DefaultCellStyle.SelectionForeColor =
Color.FromArgb(17, 94, 89);
// 表头样式
dgvOrders.ColumnHeadersDefaultCellStyle.BackColor =
Color.FromArgb(15, 118, 110);
dgvOrders.ColumnHeadersDefaultCellStyle.ForeColor = Color.White;
dgvOrders.ColumnHeadersDefaultCellStyle.Font =
new Font("Microsoft YaHei UI", 9f, FontStyle.Bold);
dgvOrders.EnableHeadersVisualStyles = false;
行内按钮列与事件处理
// 添加"操作"按钮列
var colAction = new DataGridViewButtonColumn
{
Name = "colAction",
HeaderText = "操作",
Text = "删除",
UseColumnTextForButtonValue = true,
Width = 70
};
dgvOrders.Columns.Add(colAction);
// 处理按钮点击
dgvOrders.CellClick += (s, e) =>
{
if (e.RowIndex < 0) return;
if (dgvOrders.Columns[e.ColumnIndex].Name == "colAction")
{
var orderId = dgvOrders.Rows[e.RowIndex]
.Cells["OrderId"].Value.ToString();
if (KryptonMessageBox.Show($"确定删除订单 {orderId}?",
"确认", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
DeleteOrder(orderId);
}
}
};
// 双击行查看详情
dgvOrders.CellDoubleClick += (s, e) =>
{
if (e.RowIndex < 0) return;
var row = dgvOrders.Rows[e.RowIndex];
ShowOrderDetail(row.Cells["OrderId"].Value.ToString());
};
提示:KryptonDataGridView 完全兼容标准 DataGridView 的 API,迁移时只需替换类型名即可。自定义表头颜色时记得设置
EnableHeadersVisualStyles = false,否则系统主题会覆盖自定义样式。
对应示例项目
📁 Source/Krypton Toolkit Examples/KryptonDataGridView Examples/
包含:数据绑定、手动列定义、隔行变色、按钮列、单元格编辑演示。