比如说窗体A和窗体B,再A上面有个datagrid,我点击了B的按钮以后,更新了A的datagrid的数据源,并让他显示更新的内容,我是这样做的再A申明一个函数,作用是更改datagrid的数据源,然后再b按钮单击事件上调用,可是datagrid的显示没有改变?我是菜鸟,请大虾帮帮忙,谢谢了
在b中
public delegate void testHandler();
public testHandler testhandler;
点击按钮的时候
if (testhandler != null)
{
testhandler();
}
在a中
声明testhandler事件
可以做到,两种方法,一种使用代理,一种直接使用传值。
直接传值的方法比较简单,比如:
在你要调用的窗体中。添加代码
public Form1 mainform; //记录你的宿主窗体地址
public Curious(Form1 form)
{
mainform = form;
}
public void React()
{
mainform.SetData("调用成功了.");
}
//这段代码写在你的宿主窗体中。
public void SetData(string strData)
{
textBox1.Text = strData;
}
private void button1_Click(object sender, System.EventArgs e)
{
Curious c = new Curious(this);
}