比如我有一个人员选择的form1我想在整个项目中这个人员选择窗体能够通用。比如在form2中去调用,或者form3中去调用这个form1,现在的问题是form1中如何去返回值给打开它的窗体。也就是说怎么知道是哪个窗体打开它的。谢谢各位了!!

解决方案 »

  1.   

    构造函数传参数我知道。问题是,form1中定义一个什么变量来保存父窗体的句柄?
    如果是form2打开form1那么form1中不就要定义一个private form2 f2;吗?
    那如果是form3打开呢???
      

  2.   

    通用窗体定义(F_form_T):
    Form ParentWindow=null父窗口调用:
    F_form_T ft=new F_form_T(this);
      

  3.   

    可以不用管是哪个窗体打开它.参照.NET对话框的设计思想,打开对话框的窗体自己去读取对话框的属性,比如说打开文件对话框fileopendialog1,在form1的button1的click事件中打开了:
    fileopendialog1.showdialog();
    if(fileopendialog1.dialogresult=dialogresult.ok)
      string filename=fileopendialog1.filename;
    文件对话框事先也不知道它的父窗体,你可以模仿这个思想.你把你的form1要返回的数据,用个属性把它暴露出来,而调用它的form2,form2
    就用form1的实例对象.属性来获取.