本帖最后由 boyajuexian1000 于 2011-10-18 10:42:05 编辑

解决方案 »

  1.   

    忘了说明一点MyGridView是我在Form1中定义的
    public DataGridView MyGridView
            {
                get 
                { 
                    return dataGridView1; 
                }
                set
                {
                    dataGridView1 = value;
                }
            }
      

  2.   

    Form2.MyGridView.DataSource = dt;
    这里错了吧
    应该是Form1 frm=new Form1();
    frm.MyGridView.DataSource = dt;
      

  3.   

    我写错了,是Form1.MyGridView.DataSource = dt;
    要是改成是Form1 frm=new Form1();
    frm.MyGridView.DataSource = dt;
    的话,那只是新建了另一个窗口
      

  4.   

    静态就是说此字段或者属性不可以直接调用  需要先NEW一下 实例化估计你dataGridView1定义的代码是STATIC的  把STATIC去掉试试希望对你有帮助 
      

  5.   


    //窗体1
     public Form1()
            {
                InitializeComponent();
            }
            private Form2 f2;
            private void button1_Click(object sender, EventArgs e)
            {
                this.button1.Text = "弹出form2";
                if (f2 == null)
                {
                    f2 = new Form2();
                    f2.BtnClick += new EventHandler(
                        (sender1, e1) =>
                        { this.dataGridView1.DataSource = f2.GetData(); }//根据form2的数据进行更新
                    );
                    f2.FormClosed += new FormClosedEventHandler(
                        (sender2, e2) => { f2 = null; }
                    );
                    f2.Show();
                }
                else
                {
                    f2.Activate();
                }
            }
    //窗体2
    public Form2()
            {
                InitializeComponent();
            }        public event EventHandler BtnClick;        private void button1_Click(object sender, EventArgs e)
            {
                this.button1.Text = "获取新的DGV数据";
                if (BtnClick != null)
                    BtnClick(this, e);
                GetData();//用于在当前页显示数据
            }
            public string GetData()
            {
                //获取数据代码
                //....
                //当前页面的DGV显示代码.            //返回dt
                DataTable dt=new DataTable();
                return "dt";
            }实现目标,窗体1按钮单击弹出窗体2,窗体2按钮单击后,同时更新本窗体和窗体1上的DGV.
      

  6.   

    你要仔细调试,看是否你的SQL 语句有误,如果无误,那么
    还要建立连个窗体的关系,例如:可以让 Form1 做 Form2 的 Parent.
    这样 Form2 在引用 Form1 的 MyGridView 的时候,用 this.parent 就可以了。当然 Form1 的 MyGridView 是 public 型的。至于委托和 Invoke 之类,我想这个问题还没有这么复杂.
    你先试试看,发现问题实在解决不了,再发帖子吧。