C# winform中窗口父子关系

C#winform中MainFormmainform在相应按钮事件时调用另外一个窗口Childform调用函数是这样的:ChildFormchild=newChildFo... C# winform中
MainForm mainform在相应按钮事件时
调用另外一个窗口Childform
调用函数是这样的:ChildForm child=new ChildForm();
child.ShowDialog();
然后想在childForm这个窗体相应一个按钮后 向mainform传值、因此需要调用
MainForm form=this.Owner();
这样this.owner()应该是获取父窗口的引用,但是为什么在调试时 会出现得到的引用时空呢,在主窗口MainForm调用时,没有确定这两个窗口的父子关系吗?需要怎么确定呢?谢谢~急
展开
 我来答
草薙在
2010-08-11 · TA获得超过4795个赞
知道大有可为答主
回答量:6187
采纳率:50%
帮助的人:6248万
展开全部
设置Form的Owner指的是当前窗口会作为设置窗口的子窗口,他的行为和记事本的查找替换窗口类似,不会模态的阻挡访问主窗口,并且主窗口的状态会影响子窗口,(最小化时子窗口也最小化等)

这个要显示设置你才能获取

窗体没有显式的父子关系,除非是Mdi窗体,如果是Mdi子窗体可以从MdiParent获取Mdi父窗体

一般这种对话框形式的Form设计都不直接返回值到主窗体,而是暴露一个属性,让主窗体或者任何程序可以随时访问,不知道你用过OpenFileDialog或者ColorDialog没,他们只是暴露了FileName和Color这种属性,他并不显式的访问主窗体,这样可以降低依赖性,你也可以尝试一下
lw2003112326
2010-08-11 · 超过43用户采纳过TA的回答
知道答主
回答量:101
采纳率:0%
帮助的人:98.1万
展开全部
在新建ChildForm 时候,指定其父窗口
ChildForm child=new ChildForm();
child.Parent=this;
child.ShowDialog();

然后在子窗体中利用利用强制转换就可以了。
MianForm form = (MianForm)this.Parent;
该form 就是你想要的MainForm 的原始实例了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
互联网体验师
2010-08-11 · 超过25用户采纳过TA的回答
知道答主
回答量:102
采纳率:0%
帮助的人:73.8万
展开全部
Form1 frm1 = (Form1)this.Owner;
this.textBox2.Text = frm1.TextBox1Text;
这样改哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
edwin5200
2010-08-11 · TA获得超过153个赞
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:142万
展开全部
ChildForm child=new ChildForm()
改成
ChildForm child=new ChildForm(this)
应该就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式