我们知道 C# winform 跨窗体传值,子父窗体交互一般用委托来实现。之前都是子窗体
和父窗体
两级交互,如果子窗体
再生一个子子窗体
,然后子子窗体
调用父窗体
函数,这样该如何操作?我想到的实现方式还是用委托变量
一级一级的往下传。下面是实现的效果:
▲ Form1 加载 Uc1,在 Uc1 下加载 Uc2,Uc2 下返回 Uc1
Form1.cs
1 | using System; |
UserControl1.cs
1 | using System; |
UserControl2.cs
1 | using System; |
要注意的地方:
在 UserControl1.cs
中的注释中说明。这里的委托绑定不能放在构造函数下,因为构造函数执行的时候 action = null
。主窗体先构造好子窗体,然后再给子窗体 action
赋值。所以,这里的绑定要放在子窗体构造完毕之后。