子窗体中如何调用父窗体里的方法 我写了一个程序,父窗体中有一个Listview控件和一个按钮,当载入时ListView显示数据库中的信息,当点击按钮时弹出添加信息子窗体,当添加完成点击子窗体确定按钮后我想让父窗体里的listView也跟着数据库的更新而更新,我想的方法是在子窗体里重新调用父窗体里的Form_load方法,但不知道如何调用父窗体里的方法,请大家想想办法!!!!(不用这种方法,其它办法也行)先谢谢了!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把父窗体的Listview当做参数通过构造函数传到子窗体,然后在子窗体中更改Listview的数据~ 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); }http://topic.csdn.net/u/20100106/20/e9697297-75f9-4450-aaa9-da0da416cf41.html?39668 委托实现Form2 f2 = new Form2(); private void button1_Click(object sender, EventArgs e) { f2.MyA+= new Form2.AA(B); f2.Show(); }void B(string str){}public delegate void AA(string str);public event AA MyA; private void button1_Click(object sender, EventArgs e) { this.MyA(); } 把Form_load方法里更新listview内容打包成一个新的方法比如private void listview_update(){}. 把主窗口的引用直接传递给子窗口,那样在子窗口中就可以直接对主窗口中的所有公共对象进行操作了。比如public partial class MainForm: Form { public MainForm() { InitializeComponent(); SubForm subform=new SubForm(this); } private void MainForm_Load(object sender, EventArgs e) { listview_update(); } private void listview_update() { // code } }public partial class SubForm: Form { MainForm referenceToMainForm=null; public SubForm(MainForm mainform) { InitializeComponent(); referenceToMainForm=mainform; } private void button1_Click(object sender, EventArgs e) { referenceToMainForm.listview_update(); }} 不需要那么复杂。子窗体SubForm:protected void btnOk_Click(object sender,EventArgs arg){ //插入数据的代码 if(插入数据成功) this.DialogResult=DialogResult.Ok;}父窗体:protected void btnEidt_Click(object sender,EventArgs arg){ //弹出编辑数据的子窗体 if(new SubForm().ShowDialog()==DialogResult.Ok) { //再次调用ListView数据绑定代码。 }} 参考:http://blog.csdn.net/mngzilin/archive/2010/01/01/5118256.aspx 导出Excel后,用Excel2003打开文件是乱码 如何在W7中安装SMTP协议 算法 C# 如何合并多个文件夹下 相同文件名的文件 到一个目标文件夹 异步调用WebService 技术难题--如何实现如闪烁画直线 c#中如何创建XMLHTTP对像 如何从double类型转换到int类型? 程序集的部署问题!既然有了共有/私有密钥,为什么还要数据签名哪? 要作个分销系统,请大家建议是使用B/S好,还是C/S好? wcf客户端引发异常之后服务器需要重启 C# 怎么下载隐藏资源?同时告诉新人怎么实现webbrowser的点击操作,有代码有真相
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);
}
http://topic.csdn.net/u/20100106/20/e9697297-75f9-4450-aaa9-da0da416cf41.html?39668
Form2 f2 = new Form2();
private void button1_Click(object sender, EventArgs e)
{
f2.MyA+= new Form2.AA(B);
f2.Show();
}
void B(string str){}public delegate void AA(string str);
public event AA MyA;
private void button1_Click(object sender, EventArgs e)
{
this.MyA();
}
public partial class MainForm: Form
{
public MainForm()
{
InitializeComponent();
SubForm subform=new SubForm(this);
}
private void MainForm_Load(object sender, EventArgs e)
{
listview_update();
}
private void listview_update()
{
// code
} }public partial class SubForm: Form
{
MainForm referenceToMainForm=null;
public SubForm(MainForm mainform)
{
InitializeComponent();
referenceToMainForm=mainform;
}
private void button1_Click(object sender, EventArgs e)
{
referenceToMainForm.listview_update();
}
}
protected void btnOk_Click(object sender,EventArgs arg)
{
//插入数据的代码
if(插入数据成功)
this.DialogResult=DialogResult.Ok;
}父窗体:
protected void btnEidt_Click(object sender,EventArgs arg)
{
//弹出编辑数据的子窗体
if(new SubForm().ShowDialog()==DialogResult.Ok)
{
//再次调用ListView数据绑定代码。
}
}