我只是想知道在添加新行时如何更改必填字段的背景颜色。 例如,姓名和姓氏将为红色(强制性),电话将为默认白色。
谢谢 Patryk
答案 0 :(得分:2)
执行此操作的最佳方法是通过网格设计器 - 在大多数情况下,您无需编写任何代码即可完成此操作。
如果您转到网格视图设计器,请选择菜单项“外观”和“格式规则:”
从这里,您可以点击加号图标添加格式条件:
在“列”下,选择要应用格式条件的列。
在“规则”下,选择适当的规则 - 根据您所描述的内容,您可能需要“基于值的格式”,FormatConditionRuleValue
。
在同一对话框的“规则”选项卡上,您可以相应地设置“Value1”和“Condition”属性,例如Value1 = 15,Condition =“equals。”
“外观”属性可让您根据这些条件确定如何格式化单元格。
这种方法的优点在于它是所有基于设计器的代码,并且它非常容易定制。格式化背后的逻辑也非常透明。格式条件已扩展为允许您评估表达式,这意味着您可以使用其他列值和函数创建自己的公式。
如果所有其他方法都失败了,您可以使用RowCellStyle
事件,但我的第一次尝试始终是使用设计器工具。
答案 1 :(得分:1)
您可以使用事件gvView_CustomDrawCell并仅在线路处于您需要的状态时设置背景颜色(已添加,已分离...)
private void gvView_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
{
if (e.Column != null && (e.Column.Name == bgcName.Name || e.Column.Name == bgcSureName.Name))
{
DataRow focusedRow = gvView.GetDataRow(e.RowHandle);
if (focusedRow != null)
{
if (focusedRow.RowState == DataRowState.Added)
{
e.Appearance.BackColor = Color.FromArgb(80, 10, 30, 200);
}
}
}
}
ASD