现在有3个窗体,打开顺序是:A(普通)--〉B(模式窗口)----〉C(模式窗口)
B和C分别有一个值返回给各自的前一个窗体。
现在B里得不到C的返回值
PS:项目规定不能用Session明天我生日,顺便散点分

解决方案 »

  1.   

    可以考虑在窗体里放置静态变量或者控件
    生日快乐,upup
      

  2.   

    生日快乐!
    1.用委托
    2.在A、B窗体中定义全局静态的变量,在C中赋值
      

  3.   

    把要打开的窗体用showDialog()方式打开.并返回参数到父窗体.
    比如:
    在A 中打开B:
    1,在B中定义一个public string test="";,现在,我们要把B中的test传给A.
    2,在A中:A aform=new A();
            MesaageBox.Show(aform.test);//这里获得test值,并以消息框方式显示.至于在C中得到B中的一个变量值,一方面可以象以上方式一样在C中打开B,也可以把在A中得到的B的变理值,通过C cfrom=new C(test);(当然,要重构C中的构造函数)
      

  4.   

    在C里面建一个B成员,B new C后把C.B成员=B;然后再show C。c就可以操作B了。
      

  5.   

    to 各位:
         我做的是web form!不是win form! 
      

  6.   

    生日快乐!
    用委托头会晕的
    在A、B窗体中定义全局静态的变量,在C中赋值
    好办法
      

  7.   

    UP一下
    我是这样做的.
    在A,B中都设变量
    在C中设一个变量,然后赋值,有个属性来读取和设置这个变量.
    在B中ShowDialogC.然后用C.XX来读取那个赋值的变量.这样就取到C的值了.
    再把他赋给B的变量.用A来读取.同理...
      

  8.   

    http://www3.ccw.com.cn/club/essence/200105/1776.htm
    http://www.bytebee.com/blog/print.php?articleId=216&blogId=5&output=html
    http://windyfancy.blogbus.com/logs/2004/01/71814.html
      

  9.   

    to singlepine(小山)
       正常的返回是可以的。从我的b窗体返回值给a(b是a的子窗体),是正常的!
       可是,现在b和c都是showModalDialog出来的(c是b的子窗体),c就得不到b的句柄了,b也就得不到c传的返回值了,各位还有办法嘛
      

  10.   

    用属性比较容易实现吧(winform中, webform没试过)。
    生日快乐!
      

  11.   

    属性或static
    祝你生日快乐
      

  12.   

    不能用Session那就用Cookies来做啊...呵^^^生日快乐!