DevExpress XtraGrid 格式 - 如何将所有负数括在括号中

Posted

技术标签:

【中文标题】DevExpress XtraGrid 格式 - 如何将所有负数括在括号中【英文标题】:DevExpress XtraGrid Formatting - how to enclose all negative numbers in parenthesis 【发布时间】:2011-12-07 18:12:55 【问题描述】:

我正在使用DevExpress XtraGrid 来显示数据。我想在括号中显示负数。数字包括正数和负数。

例如:

123.448
-234.887
-35687.98753
87654.98765

等等……

我想将它们格式化如下

123.448
(234.887)
(35,687.98753)
87,654.98765

为了得到上述结果,需要使用什么格式字符串?

【问题讨论】:

【参考方案1】:

请在您的专栏编辑器上使用自定义numeric mask:

this.gridColumn1.ColumnEdit = this.repositoryItemTextEdit1;
//...
this.repositoryItemTextEdit1.Mask.EditMask = "###,###,###,##0.0##;(###,###,###,##0.0##)";
this.repositoryItemTextEdit1.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;
this.repositoryItemTextEdit1.Mask.UseMaskAsDisplayFormat = true;

【讨论】:

【参考方案2】:

您始终可以使用 GridView.CustomColumnDisplayText 事件来更改数据的外观。不过使用 Mask 会更整洁。

【讨论】:

【参考方案3】:
settings.Columns.Add(set =>
                    
                        set.FieldName = "myField";
                        set.Caption = "myFieldCaption";
                        set.UnboundType = DevExpress.Data.UnboundColumnType.String;
                        set.UnboundExpression = "Iif([myField] < 0, '(' +[myField]+ ')', [myField])";
                    );

在mvc中是这样完成的,但我不知道在winforms中是如何完成的。

【讨论】:

以上是关于DevExpress XtraGrid 格式 - 如何将所有负数括在括号中的主要内容,如果未能解决你的问题,请参考以下文章

DevExpress.XtraGrid.GridControl 实现自定义tooltip

DevExpress XtraGrid如何使单元格只读?

如何获取 DevExpress XtraGrid 的选定行值?

如何在 DevExpress XtraGrid 中获得单击的单元格列

DevExpress XtraGrid自动空行的问题

如何在GridControl中显示图片列?控件DevExpress.XtraGrid.GridControl中显示图片列。