2011-12-27 241 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本身上。