被实例化的窗体怎么操作父窗体

stormem 2014-05-23 04:08:09
现有 F1 和F2。 2个窗体。

F1 代码:
F2 f2=new F2();
f2.show();

问题:
F2页面如设置 F1的TextBOX1值

F1.TEXTBOX1.TEXT=“aaa”;
...全文
266 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangping321_123 2014-05-26
  • 打赏
  • 举报
回复
我不知道你现在这个方法有没有问题, 我在这里告诉你一个没有问题的方法,就是使用委托和事件来实现。
PaulyJiang 2014-05-26
  • 打赏
  • 举报
回复
数据驱动界面,修改应该是去修改的数据。这是一种很好的方式
缪军 2014-05-24
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
在工程上,我们有最基本的原则,子窗体在设计上就不允许“操作父窗体”这种诡异的东西出现,必须实行“依赖倒置”设计。
确实是这样的, 窗体之间不应该有依赖关系,而是他们共同依赖于通信接口, 基于这个思路,我不赞成像8楼引用的帖子中所用的方法, dlg公开了TextBoxChanged,TextBoxValue这些细节, 如果还需要操作其他控件怎么办,如果还有其他form类型怎么办,看看调用链,明显不符合SOLID原则
devmiao 2014-05-23
  • 打赏
  • 举报
回复
bwangel 2014-05-23
  • 打赏
  • 举报
回复
换一种思路,像WPF的MVVM模式那样,用数据来驱动开发,而不是相反,用控件来驱动。 把所有的东西和具体的表现形式(界面)紧密耦合,不利于你的抽像能力的提高。
  • 打赏
  • 举报
回复
不知道你有没有看过工人砌墙。假设本来整齐的墙砖中突然出现了一块菱形的并且突出很多的砖,这个墙肯定往后就要倒塌。 同样的道理,在工程上,我们有最基本的原则,子窗体在设计上就不允许“操作父窗体”这种诡异的东西出现,必须实行“依赖倒置”设计。
youzelin 2014-05-23
  • 打赏
  • 举报
回复
使用 Owner 的前提是 ShowDialog / Show 方法的参数 必须传入 this 对象:

ShowDialog(this);
Show(this);
  • 打赏
  • 举报
回复
其实 this.Owner 就可以了,就代表它的父窗体。
智商余额不足 2014-05-23
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/390128592 这里总结了许多方法
stormem 2014-05-23
  • 打赏
  • 举报
回复
解决了。F1页面实例化F2时传入F1的对象 F2 f2=new F2(this); 然后在 F2页面 F1 f = (F1)this.Owner;

111,093

社区成员

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

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

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