无法搞清楚这个......
我目前有一个frmMain和一个frmLoading ..
在frmMain内部显示的事件中,我正在做
frmLoading load = new frmLoading(); load.ShowDialog();
里面frmLoading ..我想访问frmMain .. 我知道我可以在构造函数中传递前一个表单 但是如果可能的话,我想避免这样做..
以为它会是这个。所有者,或者说.Parent .. nope,搜索“this”,“Form”中的所有属性..找不到它..
有什么想法吗?
答案 0 :(得分:6)
避免让Winforms猜出谁应该是所有者,明确说明:
frmLoading load = new frmLoading();
load.ShowDialog(this);
现在,只要Load事件运行,您就可以可靠地使用Owner属性来查找所有者。如果你在构造函数中需要它,那么你将不得不将它作为构造函数参数传递,当然不是问题和首选解决方案,因为它不依赖于你使用的Show重载。考虑使用事件来避免耦合。
答案 1 :(得分:0)
frmLoading不知道frmMain。 但是如果你想从第二种形式改变形式main,你可以使用事件。 你需要将frmMain句柄传递给frmLoading。
看这里: http://forum.codecall.net/c-programming/515-c-calling-parent-functions-child-form.html
答案 2 :(得分:0)
frmLoading load = new frmLoading();
load.ShowDialog(this);
后
Button yourbutton= ((frmLoading)this.Owner).yourbutton;
yourbutton.Text= "Okay";