日期:2014-05-20  浏览次数:20855 次

界面更新问题 在线等
form2里显示数据表里的数据,在form3里做数据的修改,没有隐藏form2。
form3里做了某条数据修改之后form3.Dispose(),现在屏幕还显示form2,怎么实现在form2里显示更新过后的数据。也就是我在form3里点击确定按钮自动更新form2里显示的数据,怎么实现呢?


------解决方案--------------------
重新绑定数据
------解决方案--------------------
在确定按钮里面加上FORM2绑定数据的代码
------解决方案--------------------
写个delegate,form2传个函数给form3的buttonOK.Click,当用户点击了form3的确定,自动调用form2提供的代理函数更新页面
------解决方案--------------------
给form2添加一个方法RefreshData()
这个方法执行更新数据操作,比如重新读取数据、重新绑定等等
通常这样调用form3
DialogResult r = form3.ShowDialog();
if (r == DialogResult.OK)
{
RefreshData();
}
else
{
// 不更新
}
------解决方案--------------------
这个问题 你就要在form2 中建一个public static的 form2 frm2 变量 在初始化的时候负值
frm2=this
把form2中的要改变的控件改为public 的 然后 在form3中 用frm2.控件 操作
------解决方案--------------------
在创建form3的时候把from2传过去,from2 中 From form3 = new From(this);
同时,在form2中定义一个public的方法可以刷新界面,比如,public void refrsh(){}
form3的构造函数中
login(from2 pra)
{
MF = pra;
}
MF 定义为全局的from2类型,
然后,就可以在form3中用{MF.refrsh();}