Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 执行showdialog后如何访问上一个表单?_C#_Winforms_Forms - Fatal编程技术网

C# 执行showdialog后如何访问上一个表单?

C# 执行showdialog后如何访问上一个表单?,c#,winforms,forms,C#,Winforms,Forms,很难弄明白这一点 我目前有一个frmMain和一个frmload 在这场比赛中,我正在做 frmLoading load = new frmLoading(); load.ShowDialog(); frmLoading load=新frmLoading(); load.ShowDialog(); 内部FRM加载。。我想访问frmMain。。 我知道我可以在构造函数中传递上一个表单 但是如果可能的话我想避免 我想是这个。主人,还是这个。家长。。不,搜索了“这个”,“表格”中的所有属性。。找不到

很难弄明白这一点

我目前有一个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";