C# 执行showdialog后如何访问上一个表单?
很难弄明白这一点 我目前有一个frmMain和一个frmload 在这场比赛中,我正在做 frmLoading load = new frmLoading(); load.ShowDialog(); frmLoading load=新frmLoading(); load.ShowDialog(); 内部FRM加载。。我想访问frmMain。。 我知道我可以在构造函数中传递上一个表单 但是如果可能的话我想避免 我想是这个。主人,还是这个。家长。。不,搜索了“这个”,“表格”中的所有属性。。找不到C# 执行showdialog后如何访问上一个表单?,c#,winforms,forms,C#,Winforms,Forms,很难弄明白这一点 我目前有一个frmMain和一个frmload 在这场比赛中,我正在做 frmLoading load = new frmLoading(); load.ShowDialog(); frmLoading load=新frmLoading(); load.ShowDialog(); 内部FRM加载。。我想访问frmMain。。 我知道我可以在构造函数中传递上一个表单 但是如果可能的话我想避免 我想是这个。主人,还是这个。家长。。不,搜索了“这个”,“表格”中的所有属性。。找不到
有什么想法吗?frmload不知道frmMain。 但是,如果您想将主窗体上的某个内容从第二个窗体更改为另一个窗体,则可以使用事件。 您需要将frmMain句柄传递给frmload 看这里:
避免让Winforms猜测谁应该是所有者,要明确:
frmLoading load = new frmLoading();
load.ShowDialog(this);
现在,您可以可靠地使用Owner属性在Load事件运行后立即查找所有者。如果在构造函数中需要它,那么必须将其作为构造函数参数传递,这当然不是问题,也是首选解决方案,因为它不依赖于所使用的Show重载。考虑使用事件来避免耦合。
frmLoading load = new frmLoading();
load.ShowDialog(this);
之后
Button yourbutton= ((frmLoading)this.Owner).yourbutton;
yourbutton.Text= "Okay";