0

我有一个 .net、C# Windows 窗体项目。我正在使用 DevExpress 19.1。在我的 GridControl 上,当列小于 0 时,我有条件格式。当值小于 0 时,我希望单元格以红色突出显示,但它不起作用。我尝试过使用表达式、条件和值,仅应用于一列,应用于整个角色,但我从未使突出显示起作用。有人可以告诉我我做错了什么吗?

以下是规则在代码中的样子:

        gridFormatRule3.ApplyToRow = true;
        gridFormatRule3.Column = this.colQuantityLeft;
        gridFormatRule3.ColumnApplyTo = this.colQuantityLeft;
        gridFormatRule3.Name = "Format0";
        formatConditionRuleValue3.Appearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128)))));
        formatConditionRuleValue3.Appearance.Options.UseBackColor = true;
        formatConditionRuleValue3.Condition = DevExpress.XtraEditors.FormatCondition.Less;
        formatConditionRuleValue3.Expression = "[QuantityLeft] < 0";
        formatConditionRuleValue3.Value1 = 0;
        gridFormatRule3.Rule = formatConditionRuleValue3;
        this.gvProducts.FormatRules.Add(gridFormatRule3);

以下是我在 Designer 中设置规则的方式:

在此处输入图像描述

这是您可以看到值小于 0 且背景颜色未更改的输出:

在此处输入图像描述

4

2 回答 2

1

我看到您在网格中只有一行。网格总是有一个焦点行。聚焦的行外观比条件外观具有更高的优先级。禁用GridView.OptionsSelection.EnableAppearanceFocusedCellGridView.OptionsSelection.EnableAppearanceFocusedRow属性以移除焦点行外观。

this.gvProducts.OptionsSelection.EnableAppearanceFocusedCell = false;
this.gvProducts.OptionsSelection.EnableAppearanceFocusedRow = false;

或者,将FormatConditionRuleValue.Appearance.Options.HighPriority属性设置为true

formatConditionRuleValue3.Appearance.Options.HighPriority = true;

外观设置

于 2020-10-27T14:02:03.083 回答
1

AppearanceOptionsEx.HighPriority 属性设置为 True。

于 2020-10-27T16:51:13.963 回答