2011-12-27 130 views
0

我在驗證dataGridView單元時遇到問題。一切工作正常,除非我按下一個按鈕(保存數據按鈕),位於dataGridViewdataGridView失去其焦點,並且在驗證之前,按鈕被按下)之外。DataGridView驗證不起作用

我需要的是該按鈕(和所有其他控件,包括tabControl)無法集中並按下,直到DataGridView單元格上的值將被驗證。任何人都可以幫忙嗎?

下面的代碼示例

private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) 
    { 
     if (e.ColumnIndex > 0) // I only validate columns 1,2,3.... 
     { 
      try 
      { 
       dataGridView1.CurrentCell.Value = Convert.ToDouble(e.FormattedValue); 
      } 
      catch (Exception ex) 
      { 
       dataGridView1.CancelEdit(); 
       System.Media.SystemSounds.Hand.Play(); 
       e.Cancel = true; 
      } 

     } 
    } 

回答

0

禁用,在該代碼保存按鈕,然後啓用它回來的時候驗證過。顯示一個progess欄或一個狀態欄來表示數據正在進行後處理。在處理過程中始終保持datagridview始終處於焦點狀態。你可以通過設置一個標誌(布爾標誌)並在發生這種情況時將其設置爲true,並在鼠標移動和按鍵時做到這一點,你可以檢查它並將焦點放在datagridview本身上。