DevExpress WinForms中文教程:Data Grid - 如何自定义行和单元格的样式?

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

DevExpress WinForms中文教程图集

P.SDevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

获取DevExpress WinForms v24.1正式版下载

开始

从具有显示任务数据的网格且未应用条件格式的应用程序开始,运行应用程序,看看数据是什么样子的。

DevExpress WinForms中文教程图集

自定义单个行的外观

编写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行现在以指定的渐变背景显示,梯度应用于整个行,而不是单个单元格。

DevExpress WinForms中文教程图集

自定义单个单元格的外观

返回到设计时并自定义单个单元格。为此处理GridView.RowCellStyle事件,它为您提供了CustomRowCellEventArgs.ColumnCustomRowCellEventArgs.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事件中的设置。

DevExpress WinForms中文教程图集

  • 12
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值