2024年终活动

DevExpress控件使用交流,DevExpress中国社区Dev联系电话 联系电话:023-68661681

DevExpress WinForms使用教程:GridView - 在EditForm中更改BackColor

来源:   发布时间:2021-04-26   浏览:2268次

点击获取DevExpress完整版下载

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

DevExpress WinForms
问题

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

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#

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      欢迎一起进群讨论

慧都高端UI界面开发
本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/2379.html

相关产品: DevExpress Universal Subscription,

扫码咨询
电话咨询
023-68661681
返回
顶部