C# 在文本编辑中设置字符串,该字符串只允许int
我正在使用DevExpress。 在我的项目中,我有一个控件(textEdit),它的EditValue绑定到“int”类型的属性。 问题是控件只允许输入数字 我的任务是:当表单处于编辑模式时,文本编辑应该显示单词“Automatic”,并且只有在按下安全按钮后才会生成数字。 现在在编辑模式下,文本框显示“0”,是否可以在“0”的情况下使其显示“自动” 有一个属性,文本框绑定到该属性:C# 在文本编辑中设置字符串,该字符串只允许int,c#,textbox,devexpress,C#,Textbox,Devexpress,我正在使用DevExpress。 在我的项目中,我有一个控件(textEdit),它的EditValue绑定到“int”类型的属性。 问题是控件只允许输入数字 我的任务是:当表单处于编辑模式时,文本编辑应该显示单词“Automatic”,并且只有在按下安全按钮后才会生成数字。 现在在编辑模式下,文本框显示“0”,是否可以在“0”的情况下使其显示“自动” 有一个属性,文本框绑定到该属性: int fEventNr; public int EventNr { get { return fEv
int fEventNr;
public int EventNr {
get { return fEventNr; }
set { SetPropertyValue<int>("EventNr", ref fEventNr, value); }
}
int fEventNr;
公共int事件{
获取{return fEventNr;}
set{SetPropertyValue(“EventNr”,ref-fEventNr,value);}
}
除了显示“0”之外,一切正常,我不知道如何让他显示“自动”
也许有人有什么想法?这是解决您问题的方法:
textEdit1.Properties.CustomDisplayText += new Properties_CustomDisplayText;
void Properties_CustomDisplayText(object sender, DevExpress.XtraEditors.Controls.CustomDisplayTextEventArgs e)
{
if (yourCondition)
e.DisplayText = "Automatic";
}
考虑将public int EventNr
更改为public int?EventNr
这样,如果EditValue为null,您可以确保用户没有提供任何值,并且您应该“自动”生成该值:)
我认为把0看成是[价值不定]是一个糟糕的做法。这就是他们发明空值的原因。在属性面板上转到属性->
掩码。将“MaskType”设置为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;
this.textEditIntegersOnly.Properties.Mask.EditMask = "[1-9]+\\d*";
this.textEditIntegersOnly.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.RegEx;