本帖最后由 bulls5988 于 2011-01-01 20:44:57 编辑

解决方案 »

  1.   


    ......
    frm.show();
    btnSearch(null,null);//查询数据按钮,将数据赋给datagridview
    ......
      

  2.   

    窗体f = new 子窗体();
      f.Owner = this;
      f.ShowDialog();
      if (f.DialogResult == DialogResult.OK)
      {
         //重新绑定
      }
    或委托实现如
    public delegate void SetdataHandler();    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                Form2 frm = new Form2(new SetdataHandler(Setdata));
                frm.Show();
            }        private void Setdata()
            {
                Setdata(this.label1);
            }        private void Setdata(Control control)
            {
                if (this.Controls.Contains(control))
                {
                    
                }
            }
        }
    }
    Form2代码C# codenamespace WindowsApplication2
    {
        public partial class Form2 : Form
        {
            private SetdataHandler m_setdata;
            public Form2(SetVisiableHandler setvisible)
            {
                InitializeComponent();
                this.m_setdata = setdata;
            }
            private void btn_Click(object sender, EventArgs e)
            {
                if (this.m_setdata != null)
                {
                    this.m_setdata();
                }
            }
        }
      

  3.   

    有一个很笨很笨的方法,遍历所有的当前窗口,判断那个是form7,然后调用数据加载的方法,重新刷新一下!
      

  4.   

    最简便的方法,但是效率不好:
    在关闭form7_edit后重新绑定form7的datagridview的数据
      

  5.   

    用事件实现吧,比较容易理解点,form7_edit在关闭后触发事件onSave,然后form7进行事件后处理,代码如下:
    //form7_edit:  //定义委托
            public delegate void Save();
            //定义事件
            public event Save OnSave;        public Form2()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                this.Close();
                OnSave();
            }
    //form7:
     private void button1_Click(object sender, EventArgs e)
            {
                Form2 frm = new Form2();
                frm.OnSave += new Form2.Save(frm_OnSave);
                frm.ShowDialog();
            }
      

  6.   

    委托需要定义在 form7还是form_edit?另外刷新必须要关闭form7吗?原来我的form7是打开着的没有关闭
      

  7.   

    ShowDialog是独占的模式,很易控制。只要判断一下状态,比如:DialogResult为OK时,则再次加载表格数据即可。
    如是Show模式的话,常用的方法,就是在Form7_Edit中new()的时候,把Form7以参数的模式带进去,当用户在Form7_Edit中选择返回时,再调用Form7的加载数据的代码即可。
      

  8.   

    在form7_edit 窗口里定义一事件,当窗口关闭的时候触发事件就可以了。
      

  9.   

    在form7里定义一个公共方法来刷新你的窗体,把你的form7放到一个静态类里面,然后在edit关闭时使用这个方法就行了
      

  10.   

    乱了 乱了 这个委托 到底应该在哪个窗口定义啊? 我是 form7上有一个datagridview 控件 ,当我选中一条点击 edit按钮时,以form7_edit.ShowDialog()方式弹出的form7_edit。当我点击form_edit上的save按钮保存数据并form7刷新。刷新方法是form7上的formload();这种情况,应该是哪个窗口给哪个窗口委托?看回答有在 form7_edit上委托的也有在 form7上委托的