DevExpress.XtraEditors.TextEdit绑定数据后,不输入内容,出现 “Invalid Value” 无效值错误

使用C#做桌面应用开发时经常会将数据绑定到控件,便于接受界面录入结果

然而,当字段类型为数值型类型(如:int,decimal, float等)时 ,如果没有给定内容,当控件失去焦点时,出现“Invalid Value” 无效值错误

如:

 private void Form1_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("ID",typeof(int));
            dt.Columns.Add("Name",typeof(string));
            dt.Rows.Add(999, "zhangsan");

            textEdit1.DataBindings.Add("EditValue", dt, "ID",true);
            textEdit2.DataBindings.Add("EditValue", dt, "Name", true);

        }
View Code

界面

清空ID内容,并使其失去输入焦点时效果如下:

如果字段是string类型却不会有这个问题,遇到这个问题时,我以为是触发了事件 ,但是显然并没有手动绑定任何事件,于是我最开始使用最笨的方法强制将其改为string类型,然后注册一个编辑事件去控制输入数值内容。其实这个情况只是改动一个属性即可:

 textEdit1.CausesValidation = false;//该属性默认为True,所以不容易发现
原文地址:https://www.cnblogs.com/liangsheng/p/8934356.html