我现在碰到了这样一个问题..  我在窗体A中单击添加按钮,,弹出一个添加信息窗体B.输完信息后.在窗体B中单击确定,此时信息已经添加到数据库中去.但窗体A中的dataGrid没有显示出刚刚添加的信息,,也就是没有跟着更新.
(dataGrid已经和数据库进行绑定)在vb.net中..只要在模块中定义一个公共变量.然后用timer控件进行监控即可实现.想请问高手,,在C#中怎样才能达到,在窗体B中添加信息,窗体A的dataGrid也会跟着更新数据.C#中是如何定义一个公共变量的??/本人是初学者,真心求助! 再些谢过!

解决方案 »

  1.   

    要么重新查询,然后重新绑定;否则,你需要修改datagrid得绑定数据源。
      

  2.   

    笨方法,在B窗体添加按钮下NEW A窗体,在A窗体的构造函数中,重新得到数据集
      

  3.   

    我知道呀..但问题是..我该怎么让他自动重新查询呢?/   我的想法是用一个timer事件来临控..利用一个公共变量,当这个变量为true的时候..执行timer事件.当变量为false的时候.不执行..timer事件中写重新查询的代码..但那个公共变量该怎么来定义呢?
      

  4.   

    在B窗体定义一个事件
    publie EventHandler DataRefresh;B保存完数据调用:
    if (null != DataRefresh)
    {
    DataRefresh(this,null);
    }A窗体注册该事件
    Ba.DataRefresh += new EventHandler(MyDataRefresh);void MyDataRefresh(object sender,EventArgs e)
    {
    //重新读取数据
    }
      

  5.   

    try
    http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx
    http://blog.csdn.net/zhzuo/archive/2006/05/05/708941.aspx
      

  6.   

    窗体a中定义一个public方法FreshData(),用来绑定datagrid的数据,通过窗体b的构造函数将窗体a传过去,窗体b的数据更新后,调用a中的方法FreshData()就可以了
      

  7.   

    JasonHeung(拥有一切不过就这样笑着哭)
    ---------------------------

    我想是不是  观察者哦。
      

  8.   

    建议使用事件,即B关闭时触发一个事件,而A在showB的时候已经订阅了此事件,这样就可以执行A中的相应操作了
      

  9.   

    这个问题我已经解决了..我还有是用我自己最原始的想法来做的..
    就是用一个公共变量和Timer事件来进行临控..一旦有新的数据更新时..
    就会执行timer事件中的刷新代码..谢谢各位的帮助.!等下散分给大家.1