被实例化的窗体如何操作父窗体

被实例化的窗体怎么操作父窗体
现有  F1  和F2。 2个窗体。

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

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

 F1.TEXTBOX1.TEXT=“aaa”;
------解决方案--------------------
http://bbs.****.net/topics/390128592

这里总结了许多方法
------解决方案--------------------
其实 this.Owner 就可以了,就代表它的父窗体。
------解决方案--------------------
使用 Owner 的前提是 ShowDialog / Show 方法的参数 必须传入 this 对象:

ShowDialog(this);
Show(this);

------解决方案--------------------
不知道你有没有看过工人砌墙。假设本来整齐的墙砖中突然出现了一块菱形的并且突出很多的砖,这个墙肯定往后就要倒塌。

同样的道理,在工程上,我们有最基本的原则,子窗体在设计上就不允许“操作父窗体”这种诡异的东西出现,必须实行“依赖倒置”设计。
------解决方案--------------------
应该用委托吧
------解决方案--------------------
换一种思路,像WPF的MVVM模式那样,用数据来驱动开发,而不是相反,用控件来驱动。
把所有的东西和具体的表现形式(界面)紧密耦合,不利于你的抽像能力的提高。
------解决方案--------------------
http://bbs.****.net/topics/360140208
------解决方案--------------------
引用:
在工程上,我们有最基本的原则,子窗体在设计上就不允许“操作父窗体”这种诡异的东西出现,必须实行“依赖倒置”设计。


确实是这样的,
窗体之间不应该有依赖关系,而是他们共同依赖于通信接口,
基于这个思路,我不赞成像8楼引用的帖子中所用的方法,
dlg公开了TextBoxChanged,TextBoxValue这些细节,
如果还需要操作其他控件怎么办,如果还有其他form类型怎么办,看看调用链,明显不符合SOLID原则 

------解决方案--------------------
数据驱动界面,修改应该是去修改的数据。这是一种很好的方式
------解决方案--------------------
我不知道你现在这个方法有没有问题,

我在这里告诉你一个没有问题的方法,就是使用委托和事件来实现。