这个刷新的问题,可以解决的。 窗体A中,可以打开窗体B,窗体B中,又可以打开窗体C。 刷新动作可以对上一级(父)窗体做,如果对上上级(祖父)窗体,我就没试过了。给你提供我的方法:(举例) 窗体A:frmA 窗体B:frmB(frmA的子窗体) frmA中要加一刷新方法,用以及时刷新Datagrid等: public void Refrech_Data(){}在frmA中打开frmB时: frmB b = new frmB(); b.Owner = this; b.Show();//or ShowDialog();在frmB中,当操作完,及时对frmA中的Datagrid刷新时: frmA a = new frmA(); a = (frmA)this.Owner; a.Refrech_Data();那么以上代码就实现了在子窗体中及时刷新父窗体的功能了。 实现的原理是通过转换窗体所有权来实现的。 你可以参考这个,做你的,基本差不多。
{
do something^^^^^^
}
这段代码在A里,想怎么样就怎么样
系统从页面A打开一个新窗体B,该窗体B能够再打开一个模式窗体C,且能够动态变化DataGrid数据行数。现在希望关闭B的时候能够激活A中的某个函数或事件。 希望朋友们能够提供源码、资料等。
窗体A中,可以打开窗体B,窗体B中,又可以打开窗体C。
刷新动作可以对上一级(父)窗体做,如果对上上级(祖父)窗体,我就没试过了。给你提供我的方法:(举例)
窗体A:frmA
窗体B:frmB(frmA的子窗体)
frmA中要加一刷新方法,用以及时刷新Datagrid等:
public void Refrech_Data(){}在frmA中打开frmB时:
frmB b = new frmB();
b.Owner = this;
b.Show();//or ShowDialog();在frmB中,当操作完,及时对frmA中的Datagrid刷新时:
frmA a = new frmA();
a = (frmA)this.Owner;
a.Refrech_Data();那么以上代码就实现了在子窗体中及时刷新父窗体的功能了。
实现的原理是通过转换窗体所有权来实现的。
你可以参考这个,做你的,基本差不多。
你在frmB的OnClosing事件中加上调用(如Refresh_Data)就可以了。