我是一个初学者,请教各位大神一个问题,我在B窗体中新增数据并保存成功,如何实时更新A窗体中的dategridview显示,望指教!谢谢

解决方案 »

  1.   

    利用委托事件。在A窗体创建委托参数为:DataGridView,并声明事件。然后在你打开B窗体时,绑定B窗体的事件函数(对A窗体的DataGridView操作)并执行委托,并A窗体的DataGridView委托到B窗体中执行。 也就是说,在B窗体更新数据的时候,相对应A窗体的DataGridView也改变
      

  2.   

    https://bbs.csdn.net/topics/360140208
      

  3.   

    A窗体的 datatable 作为参数传递给 B窗体,B窗体接受后直接操作 datatable,或者DataSet
      

  4.   

    通知 A窗体刷新(Refresh)
      

  5.   

    利用委托转发事件,通知 A窗体刷新(Refresh)
      

  6.   

    将A窗体的datagridview的数据源绑定为datatable,将这个datatable作为参数传入B窗体。B窗体新增记录用datatable.NewRow方法操作,保存后A窗体会自动刷新。
      

  7.   

    主窗口
        public partial class Form1 : Form//主窗口
        {      
            public Form1()
            {
                InitializeComponent();
            }
            public void SayHello(string sMsg)//在下面加入要刷新的代码
            {
                //收到子窗口传过来的值sMsg,要做什么.
                textBox1.Text = sMsg;        
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                Form2 fn2 = new Form2();
                fn2.e1 += new Form2.HelloHandler(SayHello);
                fn2.Show();//打开子窗口
            }
        }子窗口
        public partial class Form2 : Form//子窗口
        {
            public delegate void HelloHandler(string sMsg);
            public HelloHandler e1;               public Form2()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {            
                e1(textBox1.Text);//把值传给主窗口,并刷新操作主窗口
            }
        }
      

  8.   

    搞那复杂干嘛? owner 不能实现吗?A窗体声明FormB b = new FormB()b.owner = this;B窗体数据保存后,利用A窗体的方法,刷新dategridview 的datasource(owner as FormA).方法大概是这个思路