我正在使用DevExpress。 在我的项目中,我有控制(textEdit),其中EditValue被绑定到“int”类型的属性。 问题是控制只允许输入数字。
我的任务是:当表单处于编辑模式时,textEdit应该显示单词“Automatic”,并且只有在按下安全按钮后才会生成数字。 现在在编辑模式下,文本框显示“0”,是否可以在“0”的情况下显示“自动”。
有一个属性,textBox绑定到该属性:
int fEventNr;
public int EventNr {
get { return fEventNr; }
set { SetPropertyValue<int>("EventNr", ref fEventNr, value); }
}
一切正常,除了显示“0”,我不知道如何让他显示“自动” 也许有人有任何想法?
答案 0 :(得分:0)
这是解决您问题的方法:
textEdit1.Properties.CustomDisplayText += new Properties_CustomDisplayText;
void Properties_CustomDisplayText(object sender, DevExpress.XtraEditors.Controls.CustomDisplayTextEventArgs e)
{
if (yourCondition)
e.DisplayText = "Automatic";
}
答案 1 :(得分:0)
txtEdit.Properties.NullText = "Automatic";
txtEdit.EditValue = null;
考虑将public int EventNr
更改为public int? EventNr
,以便在EditValue为空时可以确保用户没有提供任何值,并且您应该生成它&#34;自动&#34; aly: )
我认为将0视为[未设置值]是一种不好的做法。这就是他们发明null的原因。
答案 2 :(得分:0)
在属性面板上,转到属性 - &gt; 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;