关于Form互引用的问题

kaneboy 2002-07-07 10:58:55
比如启动窗体是Form1,然后在点击Form1的一个Button,创建新的Form2对象,然后Show()它,在Form2中再如何引用Form1中的对象呢?

我现在用的方法是在Form2中创建一个变量和一个属性:
private Form _opener;
public Form Opener{
set{
_opener = value;
}
}
在调用show()显示Form2前,先设置这个_opener,如:
Form2 f2 = new Form2();
f2.Opener = this;
f2.Show();
然后我就可以在Form2的代码中引用Form1:
_opener.Text = "ChangedByForm2";

有什么更好的方法吗?ShowDialog()可以加一个参数,表示dialog窗体的Owner,这样可以用f2.ShowDialog(this);打开新的窗体,然后在新窗体中用this.Owner来引用原窗体。
...全文
66 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanwenguo 2002-07-08
  • 打赏
  • 举报
回复
form1
-----------------------
Form2 d=new Form2();
this.AddOwnedForm(d);//增加
d.ShowDialog();
---------------------
form2
-----------------
this.Owner.Controls[7].Text=strto;
//如果声明的变量或对象是public好像就可以直接调用
----------------------------
kaneboy 2002-07-08
  • 打赏
  • 举报
回复
提前
pursuer 2002-07-08
  • 打赏
  • 举报
回复
把这个对像设为public,然后将isshared属性该为true就可以了
chinaplate 2002-07-08
  • 打赏
  • 举报
回复
你的方法很好啊,两个窗口从逻辑上没有父子的关系,就没必要使用owner。
你需要另一个窗口中的对象中的成员,就直接把这个成员public了。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧