Gridcontrol edit/update 必填字段不同颜色

Gridcontrol edit/update mandatory fields different colour

我只是想知道如何在添加新行时更改必填字段的背景颜色。 因此,例如姓名和姓氏将是红色的(强制性的)并且 phone 将默认为白色。

谢谢 帕特里克

您可以使用事件 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

最好的方法是通过网格的设计器——在大多数情况下,您不需要编写任何代码来完成此操作。

如果您转到网格视图设计器,select 菜单项 "Appearance" 和 "Format Rules:"

在这里,您可以通过单击加号图标添加格式条件:

在 "Column," 下选择要应用格式条件的列。

在 "Rule," 下选择一个合适的规则 -- 根据您的描述,您可能需要 "Format Based on a Value," FormatConditionRuleValue.

在同一对话框的 "Rule" 选项卡上,您可以相应地设置 "Value1" 和 "Condition" 属性,例如 Value1 = 15,Condition = "equals."

"Appearance" 属性 将让您根据这些条件确定如何格式化单元格。

这种方法的美妙之处在于它都是基于设计器的代码,而且很容易定制。格式化背后的逻辑也非常透明。格式条件已得到扩展,您也可以对表达式求值,这意味着您可以使用其他列值和函数创建自己的公式。

如果一切都失败了,您可以使用 RowCellStyle 事件,但我的第一次尝试总是使用设计器工具。