提交正在修改的单元格

有些朋友可能在DataGridView中修改了数据,但没有使该单元格失去焦点,保存时不会系统不会认为这条记录被修改.
以下代码可以实现提交当前单元格的修改.
背景:使用MDI窗体,点击保存时,检查子窗体包含哪能些更改未递交.
不过,建议使用bindingSource进行绑定,将更简单.

public virtual void Save()    //所有子窗体从此类中继承,并且需先执行base.Save()
        {
            //使当前正在编辑的单元格取消编辑状态
            GridEndEdit(this);
           
        }

        //此方法用于寻找当前被编辑的单元格,递交更改
        private void GridEndEdit(Control control)
        {
            foreach (Control cl in control.Controls)
            {
                if (cl.ToString() == "System.Windows.Forms.DataGridView")
                {
                    DataGridView view = (DataGridView)cl;
                    if (view.CurrentCell!=null)
                    {
                        if (view.CurrentCell.IsInEditMode)
                        {                           
                            view.EndEdit();                   
                            this.BindingContext[view.DataSource].EndCurrentEdit();                           
                            return;
                        }
                    }        
                }               
                if (cl.Controls.Count > 0)
                    GridEndEdit(cl);
            }
        }

posted on 2008-03-17 09:00  煎蛋  阅读(630)  评论(2)    收藏  举报

导航