C#的WinForm程序中,不同窗口如何共享变量和交互?
rmryt 2007-10-18 04:55:21 比如我的应用程序有一个初始Form,从这个Form可以弹出其他Form,可以是Show()的也可以是ShowDialog()。
主窗口和子窗口如何共享变量呢,假设子窗口要使用主窗口里的变量值应该怎么办?我目前知道可以传参数,但是如果参数量很大,就会不方便,特别是在构造函数以外的地方使用这些变量,那么子窗口的类中还要再定义这些变量一次,更加麻烦。还有一个办法就是将主窗口中的要被共用的变量定义成静态的,这样的话,同一个命名空间下其他类都能访问,不过定义一大堆静态变量总感觉怪怪的,定义静态方法倒觉得没什么。请问还有别的好方法没有,上面提到的两种办法我总觉得会破坏整体程序结构,为以后的维护和修改带来不便,或许只是我自己心理感觉而已吧。请问大家在实际工作中都是怎么解决的?
反之,母窗口要操纵子窗口,但是仅仅在某个局部函数中拥有子窗口的句柄,比如 ChildFrom cf = new ChildForm(); 这里获得了cf的句柄,但是在别的地方就无法访问这个局部变量了,请问应该怎么做。很多大型软件那么多的窗口控件,它们的数据传送都很自然,可是自己弄起来发现还挺麻烦,不知道都有些什么惯用法。