读书人

关于WINFORM里面刷新数据的有关问题

发布时间: 2013-02-24 17:58:57 作者: rapoo

关于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();//定义一个委托


public static event mydelegate myevent;//定义上诉委托类型的事件


private void button1_Click(object sender, EventArgs e)
{

if (myevent != null)
{
myevent();
}

}


C# code
private void button2_Click(object sender, EventArgs e)
{
Form2 fm2 = new Form2();
Form2.myevent += new Form2.mydelegate(fm2_myevent);
fm2.Show();

}

private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show("你好");
}
void fm2_myevent()
{
Form1_Load(null,null);
}






[解决办法]
这种问题可以考虑接口+事件。.net里有一个INotifyPropertyChanged接口,其背后是一种解决你遇到的问题的不错的模式,当然这种模式可能不适用于你的情况,但其思想是可以借鉴的。去MSDN,搜索这个接口的名字,你就知道怎么回事了。
[解决办法]
这么多人都回答了啊

最简单的就是form2调用form1的绑定数据方法,添加完新数据后调用form1的绑定方法即可

读书人网 >C#

热点推荐