【问题标题】:Gridcontrol edit/update mandatory fields different colourGridcontrol 编辑/更新必填字段不同的颜色
【发布时间】:2016-02-15 11:41:48
【问题描述】:

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

谢谢 帕特里克

【问题讨论】:

  • 仅供那些寻求结束这个问题的人参考。我明白你为什么会,乍一看我也会。但是,基于 Dev Express 工具的性质,这实际上是一个合理的问题。如果您熟悉 Dev Express 并且仍然认为这是一个糟糕的问题,我尊重我们的意见分歧。如果没有,请您在投票前考虑这一点

标签: vb.net devexpress edit background-color gridcontrol


【解决方案1】:

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

如果你去网格视图设计器,选择菜单项“外观”和“格式规则:”

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

在“列”下,选择要应用格式条件的列。

在“规则”下,选择适当的规则 - 根据您的描述,您可能想要“基于值的格式”FormatConditionRuleValue

在同一对话框的“规则”选项卡上,您可以相应地设置“值 1”和“条件”属性,例如值 1 = 15,条件 =“等于”。

“外观”属性可让您根据这些条件确定如何格式化单元格。

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2017-10-26
      相关资源
      最近更新 更多