C# 在文本编辑中设置字符串,该字符串只允许int

C# 在文本编辑中设置字符串,该字符串只允许int,c#,textbox,devexpress,C#,Textbox,Devexpress,我正在使用DevExpress。 在我的项目中,我有一个控件(textEdit),它的EditValue绑定到“int”类型的属性。 问题是控件只允许输入数字 我的任务是:当表单处于编辑模式时,文本编辑应该显示单词“Automatic”,并且只有在按下安全按钮后才会生成数字。 现在在编辑模式下,文本框显示“0”,是否可以在“0”的情况下使其显示“自动” 有一个属性,文本框绑定到该属性: int fEventNr; public int EventNr { get { return fEv

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

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

有一个属性,文本框绑定到该属性:

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;