执行的代码是保存DataGrid内容至数据库。如果代码放到Button的Click事件处理函数中正常;放到ToolBar的ButtonClick事件中,则DataGrid最后一行内容保存不到数据库中,把光标从最后一行移至其他行则可以正常保存。

解决方案 »

  1.   

    我发现了点击ToolBar上的Button时,DataGrid没有失去输入焦点;点击普通Button时,DataGrid失去了焦点。
      

  2.   

    现在的问题是如何让DataGrid完成输入,失去焦点?
      

  3.   

    确实这样。点击ToolBar上的Button时,DataGrid没有失去输入焦点。你可以这样:
    ...
    private System.Windows.Forms.ToolBar toolbar;
    ...
    private void toolbar_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
    {
    toolbar.tBar.Focus();
    ...
    }
    不过这样,假如DataGrid的数据源是DataTable,不能撤销DataGrid最后一个单元格的修改了。
      

  4.   

    DataGrid最后一行内容保存不到数据库
    -------------------------------------
    这个问题可以解决的
    是代码的问题
    //将当前所在行往下移动一行,为便于实现同步保存
    //(否则会出现修改的最后一行无法保存,因为它还处于编辑状态)
    this.dataGrid1.CurrentCell = new DataGridCell(row+1,0);
    加这行代码就OK了