难以解决这个问题..
我目前有一个frmMain和一个frmLoading ..
在frmMain内部,我正在做
frmLoading load = new frmLoading(); load.ShowDialog();
在frmLoading里面..我想访问frmMain ..我知道我可以在构造函数中传递前一个表单但我想尽可能避免这个...
以为它会是这个.所有者,或者说.Parent .. nope,搜索"this","Form"中的所有属性..找不到它..
任何的想法?
避免让Winforms猜测谁应该是所有者,明确说明:
frmLoading load = new frmLoading();
load.ShowDialog(this);
Run Code Online (Sandbox Code Playgroud)
现在,只要Load事件运行,您就可以可靠地使用Owner属性来查找所有者.如果你在构造函数中需要它,那么你将不得不将它作为构造函数参数传递,当然不是问题和首选解决方案,因为它不依赖于你使用的Show重载.考虑使用事件来避免耦合.