比如 我通过form2从数据库中插入内容,怎么样在插入完成的同时刷新form1中显示的数据 ??

解决方案 »

  1.   

    Form2怎么知道Form1为何物?他们之间的关系如何?
      

  2.   

    如果form1没用数据绑定,就得让form1重新load一次,如果绑定了,就更新一下DS!
      

  3.   

    用事件。在Form2定义一个事件,当更新完成时触发。Form1呢,就订阅这个事件,每当Form2里触发事件时,自动调用Form1里更新显示的代码。
      

  4.   

    偶是菜鸟 ..怎么在form2中重新load form1?能不能具体点 ???
      

  5.   

    to 用事件。在Form2定义一个事件,当更新完成时触发。Form1呢,就订阅这个事件,每当Form2里触发事件时,自动调用Form1里更新显示的代码。
    偶也是菜鸟,能具个简单的例子理解下吗???不慎感激!!!
      

  6.   

    class F1:From
    {
    private void LoadData()
    {
    //先清除你窗口中所承载的数据
    //然后把你Form1中从数据库中获取数据的代码全放到这里
    }
    private void F2_DataUpdated(object sender ,EventArgs e)
    {
    this.LoadData();
    }
    private void OpenForm2()//假定这个方法使你打开Form2
    {
    F2 f=new F2();
    f2.DataUpdated+=new EventHandler(this.F2_DataUpdated);
    F2.Show();
    }
    }
    class F2:Form
    {
    private UpdateData()//假定你在这个方法中更新数据库
    {
    //.......这里是你的更新代码
    if(this.DataUpdated!=null)
    this.DataUpdaed(this,EventArgs.Empty);
    public event EventHandler DataUpdated;
    }
    }
      

  7.   

    NND,又打错了,把最后四句改为:
    this.DataUpdaed(this,EventArgs.Empty);
    }
    public event EventHandler DataUpdated;
    }
      

  8.   

    可以使用委托和事件来完成的
    在From2中:
    namespace Test
    {
        public delegate void DisplayUpdate();//注意这里的委托声明要和你要调用的函数声
                                             //明相同,即返回值和参数列表相同
        public partial class Form2:Form
        {
             public event DisplayUpdate ShowUpdate;//声明事件
             public Form2()
             {
                 InitializeComponent();
             }         private void btnOk_Click(object sender, EventArgs e)
             {
                //在这里对数据库进行更新操作
                //然后引发事件处理函数
                ShowUpdate();
             }
        }
    }在Form1中
    Form2 form2 =new Form2();
    form2.ShowUpdate +=DisplayUpdate(QueryRecord);
    form2.ShowDialog();private void QueryRecord()//注意这里的函数声明和在Form2中声明的委托返回值和函数参数和
                              //的个数要相同
    {
       对数据库进行相应的查询操作
    }