WinForm中DataGridView驗證單元格輸入的是數字


     事件:DataGridView驗證單元格輸入的是數字,DataGridView源數據是從數據庫讀取的。

     需求:當用戶輸入的不是數字的時候需要提示信息(數據是直接綁定數據庫的,因此dataGridView有自己的報錯功能,我們需要屏蔽掉它,顯示自己的錯誤提示!)

     實現: 選擇DataGridView的CellValidating事件

             

      (1)  驗證整數:

View Code
 1  private void gridPlant_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
 2         {
 3             if (e.RowIndex > -1 && e.ColumnIndex > -1)
 4             {
 5                 DataGridView grid = (DataGridView)sender;
 6                 grid.Rows[e.RowIndex].ErrorText = "";
 7                //這里最好用列名,而不是列索引號做判斷
 8                 if (grid.Columns[e.ColumnIndex].Name == "WO0011_NUMBER_IDLE" || grid.Columns[e.ColumnIndex].Name == "WO0011_NUMBER_WORKING" || grid.Columns[e.ColumnIndex].Name == "WO0011_NUMBER_ON_SITE")
 9                 {
10 
11                     Int32 newInteger = 0;
12                     if (!int.TryParse(e.FormattedValue.ToString(), out newInteger))
13                     {
14                         e.Cancel = true;
15                         grid.Rows[e.RowIndex].ErrorText = "Please enter a int number!";
16                         MessageBox.Show("the value is not nubmer , Pleaser enter a int number !");
17                         return;
18                     }
19                 }
20             }
21         }

     (2) 驗證十進制數:

 

View Code
 1  private void gridBriefsOlder_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
 2         {
 3             if (e.RowIndex > -1 && e.ColumnIndex > -1)
 4             {
 5                 DataGridView grid = (DataGridView)sender;
 6                 grid.Rows[e.RowIndex].ErrorText = "";
 7 
 8                 if (grid.Columns[e.ColumnIndex].Name == "WO0009_APPROXIMATE_COMPLETION_PERCENTAGE1")
 9                 {
10                     try
11                     {
12                         Convert.ToDecimal(e.FormattedValue);
13                     }
14                     catch
15                     {
16                         e.Cancel = true;
17                         grid.Rows[e.RowIndex].ErrorText = "Please enter a number!";
18                         MessageBox.Show("the value is not nubmer , Pleaser enter a  number !");
19                         return;
20                     }
21                 }
22             }
23         }

 

           

           

          

         


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM