开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 5722|回复: 0

GridView - 在EditForm中更改BackColor

[复制链接]

0

精华

8

贡献

1768

赞扬

特约版主

帖子
583
软币
4524
在线时间
275 小时
注册时间
2019-2-21
发表于 2021-4-27 09:37:31 | 显示全部楼层 |阅读模式


点击获取DevExpress完整版下载

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


问题

假设在GridView中动态更改RowCell的颜色:

C#

[C#] 纯文本查看 复制代码
private void GridView_RowCellStyle(object sender, RowCellStyleEventArgs e)
{
// ... some logic
e.Appearance.BackColor = Color.FromArgb(98, 182, 204, 252);
// ... other logic
}


需要在相应的编辑表单控件中使用相同的BackColor。有必要使用EditFormPrepared事件并更改e.BindableControls [column] .BackColor属性,但我想了解如何获取列样式。

解决方案

任务是获取相应列单元格的颜色,建议创建一个方法,该方法实现RowCellStyle逻辑来计算单元格颜色并将其在EditFormPrepared事件处理程序中使用。下面的代码说明了此方法:

C#

[C#] 纯文本查看 复制代码
private void GridView1_EditFormPrepared(object sender, EditFormPreparedEventArgs e) {
GridView view = sender as GridView;
foreach (GridColumn c in view.VisibleColumns) {
e.BindableControls[c].BackColor = GetColor(c, e.RowHandle, view.GetRowCellValue(e.RowHandle, c));
}
}
private void GridView1_RowCellStyle(object sender, RowCellStyleEventArgs e) { 
e.Appearance.BackColor = GetColor(e.Column, e.RowHandle, e.CellValue); 
}
Color GetColor(GridColumn column, int rowHandle, object value) {
if (rowHandle != 0)
return Color.Empty;
//your logic
if (column.FieldName == "Name")
return Color.Green;
return Color.Red;
}



上DevExpress中文网,获取第一手最新产品资讯!

DevExpress技术交流群3:700924826      欢迎一起进群讨论


回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-11-21 21:15

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表