日期:2014-05-17  浏览次数:20786 次

关于WINFORM里面刷新数据的问题,求围观!!!!
winform 里面  form2 添加信息,添加成功后,form1更新。form1绑定的是form2所添加的信息。怎么实现Form2添加完后让form1刷新数据。是winform里面。谢谢,谢谢!

------解决方案--------------------
1、如果form2是form1打开的,那么可以在form2关闭时,重新获取数据绑定,就实现刷新了。

2、如果想定时刷新,就放一个timer。
------解决方案--------------------
用事件
from2添加数据后触发from1数据更新
------解决方案--------------------
委托修改主窗体相关数据http://topic.csdn.net/u/20100106/20/e9697297-75f9-4450-aaa9-da0da416cf41.html?39668

------解决方案--------------------
方法有2
1。form2修改到数据库 关闭后 重新绑定 form1 

2。form1 中写一个public方法  在form2关闭前 调用form1中的方法

方法2 又有两种传递form1 的方法
1。form1 作为form2 的ower 传递过去
2。form2 中写一个 以form1 为参数的构造函数 初始化form2的时候就传递过去
------解决方案--------------------
引用:
引用:

1、如果form2是form1打开的,那么可以在form2关闭时,重新获取数据绑定,就实现刷新了。

2、如果想定时刷新,就放一个timer。


是第一种情况。但是我在绑定成功的时候,已经再次调用了form1的bind方法了啊。但是没反应的。要不我也不来论坛求救了。。。。。


你怎么打开的form2呢?没反应是你的bind方法的问题吧
------解决方案--------------------
用观察者模式来做
form2修改后 给form1一个委托事件 
form1在事件中实现刷新
------解决方案--------------------

//winForm1里:
        //绑定事件,我这是绑定到combobox
        public void BindDDL(参数)
        {
            cobb_server.DataSource = Bl.LoadSSr(参数);
            cobb_server.DisplayMember = "QdbIP";
            cobb_server.ValueMember = "ID";
            cobb_server.SelectedIndex = 0 ;
        }
//winForm2里:
        public winForm1 wf1;

        private void 需要改变wf1的事件()
        {
            if (wf1 == null 
------解决方案--------------------
 wf1.IsDisposed)
            { }
            else { wf1.BindDDL(参数); }
        }

------解决方案--------------------

public partial class Form2 : Form
    {

        //密码窗体
       
        public Form2()
        {
            InitializeComponent();
        }
        public delegate void mydelegate();//定义一个委托