日期:2014-05-17  浏览次数:21232 次

双击主窗体datagridView某行弹出子窗体,在子窗体上对该行进行实时编辑
主窗体界面:

主要代码:
C# code

        public delegate void AsyncDelegate();
        public void ShowChild()//弹出子窗体
        {
            CFrmChild FrmChild = new CFrmChild(dgv.CurrentRow);           
            FrmChild.ShowDialog();
        }
        private void dgv_CellDoubleClick(object sender, DataGridViewCellEventArgs e)//双击弹出子窗体
        {
            AsyncDelegate dlgt = new AsyncDelegate(this.ShowChild);
            IAsyncResult ar = dlgt.BeginInvoke(null, null);
            dlgt.EndInvoke(ar);           
        }


子窗体界面:

主要代码:
C# code

private DataGridViewRow dgvrMain;  
public CFrmChild(DataGridViewRow dgvr)
        {
            InitializeComponent();
            this.dgvrMain = dgvr;
            //txtNum.Text = dgvr.Cells["ZHLDAH"].Value.ToString();
            txtNum.DataBindings.Add("Text", dgvr.DataBoundItem, "ZHLDAH");//质量档案编号
            txtNote.DataBindings.Add("Text", dgvr.DataBoundItem, "ZHUYSX");//注意事项
        }
private void btnOK_Click(object sender, EventArgs e)//确定
        {
            dgvrMain.Cells["ZHLDAH"].Value = txtNum.Text;
            dgvrMain.Cells["ZHUYSX"].Value = txtNote.Text;
            this.Close();
        }


现在的问题是,比如我在主窗体上第1行双击弹出子窗体,在子窗体编辑后关闭,必须用鼠标点击主窗体的其它行,第1行的数据才会改变。请问有没有什么办法实现一关闭子窗体时主窗体就立刻更新?

------解决方案--------------------
this.dataGridView1.Refresh(); 试一下