1. 程式人生 > >DevExpress.XtraEditors.TextEdit綁定數據後,不輸入內容,出現 “Invalid Value” 無效值錯誤

DevExpress.XtraEditors.TextEdit綁定數據後,不輸入內容,出現 “Invalid Value” 無效值錯誤

給定 bind 遇到 obj span pla 字段類型 圖片 焦點

使用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,所以不容易發現

DevExpress.XtraEditors.TextEdit綁定數據後,不輸入內容,出現 “Invalid Value” 無效值錯誤