DevExpress WinForms中文教程:Data Grid - 如何自定义行和单元格的样式?
在本教程中您将学习如何使用事件更改数据单元格样式,您将从要给显示任务数据的网格开始,并且没有应用条件格式。通过处理GridView.RowStyle事件,您将对Priority字段值为High的行应用不同的背景颜色。然后如果Status设置为New,您将使用GridView.RowCellStyle事件来突出显示这些行中的Status单元格。

P.S:DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
获取DevExpress WinForms v24.1正式版下载
DevExpress技术交流群10:532598169 欢迎一起进群讨论
开始
从具有显示任务数据的网格且未应用条件格式的应用程序开始,运行应用程序,看看数据是什么样子的。

自定义单个行的外观
编写GridView.RowStyle事件处理程序,当前处理的行是使用事件的RowEventArgs.RowHandle参数标识的,该行的外观设置是使用 RowStyleEventArgs.Appearance 参数设置的。
C#
private void gridView_RowStyle(object sender, RowStyleEventArgs e) { GridView View = sender as GridView; if (e.RowHandle >= 0) { string priority = View.GetRowCellDisplayText(e.RowHandle, View.Columns["Priority"]); if (priority == "High") { e.Appearance.BackColor = Color.FromArgb(150, Color.LightCoral); e.Appearance.BackColor2 = Color.White; } } }
运行应用程序并查看结果。“high priority行现在以指定的渐变背景显示,梯度应用于整个行,而不是单个单元格。

自定义单个单元格的外观
返回到设计时并自定义单个单元格。为此处理GridView.RowCellStyle事件,它为您提供了CustomRowCellEventArgs.Column和CustomRowCellEventArgs.RowHandle参数,用于标识正在处理的单元格。如果Status列中的单元格值为New,则处理程序将修改这些单元格,前提是记录的Priority设置为High。
C#
private void gridView_RowCellStyle(object sender, RowCellStyleEventArgs e) { GridView View = sender as GridView; if (e.Column.FieldName == "Status") { string status = View.GetRowCellDisplayText(e.RowHandle, View.Columns["Status"]); string priority = View.GetRowCellDisplayText(e.RowHandle, View.Columns["Priority"]); if (status == "New" && priority == "High") { e.Appearance.BackColor = Color.FromArgb(150, Color.Salmon); e.Appearance.BackColor2 = Color.FromArgb(150, Color.Salmon); } } }
运行应用程序,您会看到GridView.RowCellStyle事件强加的外观设置覆盖了GridView.RowStyle事件中的设置。

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2023-09-12 界面控件DevExtreme DateRangeBox组件发布,支持日期范围选择!
2019-09-12 MyEclipse使用教程:导航代码(一)
2018-09-12 DevExpress v18.1新版亮点——DevExtreme篇(二)