0

我正在使用 DevExpress。在我的项目中,我有控件(textEdit),其中 EditValue 绑定到“int”类型的属性。问题是控件只允许输入数字。

我的任务是:当表单处于编辑模式时,textEdit 应该显示单词“Automatic”,并且只有在按下安全按钮后才会生成数字。现在在编辑模式下文本框显示“0”,是否可以在“0”的情况下使其显示“自动”。

有文本框绑定到的属性:

int fEventNr;
public int EventNr {
    get { return fEventNr; }
    set { SetPropertyValue<int>("EventNr", ref fEventNr, value); }
}

一切正常,除了它显示“0”而且我不知道如何让他显示“自动”也许有人有任何想法?

4

3 回答 3

0

这是您的问题的解决方案:

textEdit1.Properties.CustomDisplayText += new Properties_CustomDisplayText;


void Properties_CustomDisplayText(object sender, DevExpress.XtraEditors.Controls.CustomDisplayTextEventArgs e)
{
    if (yourCondition)
        e.DisplayText = "Automatic";
} 
于 2012-10-25T09:03:43.487 回答
0
txtEdit.Properties.NullText = "Automatic";
txtEdit.EditValue = null;

考虑更改public int EventNr为,public int? EventNr以便您可以确定如果 EditValue 为空,则用户没有提供任何值,并且您应该“自动”生成它:) 我认为将 0 视为 [未设置值] 是一种不好的做法。这就是他们发明空值的原因。

于 2012-10-27T19:39:42.743 回答
0

在属性面板上,转到 Properties ->Mask . Set "MaskType" to RegEx并设置"EditMask"\d*. 如果您不希望整数以零开头,则改为设置"EditMask"[1-9]+\d*。或者,您可以通过代码执行此操作:

this.textEditIntegersOnly.Properties.Mask.EditMask = "[1-9]+\\d*";
this.textEditIntegersOnly.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.RegEx; 
于 2017-07-26T07:24:23.027 回答