Winform程序
form1点击弹出form2,form2是一个客户挡案,选择相应的客户,即显示在from1中
现在采用的方法:加form2的构造函数
Private Form1 form1;public Form2(Form1 f)
{
   InitializeComponent();
   this.form1=f;
}
当选择后
form1.select(选择的值数组);也可以
private deletege selectCus(string[] s);   //?????
selectCus sel=form1.select;
sel();                     //也是调用方法/---------------form1中--------------
//这个public过程设置选择的值
public void select(string[] s)
{
//这里设置选择的值
}不知道说明白没有,也就是把form1的实例传递给form2,在form2中调用赋值的方法
问题:
现在大概有10多个窗体要调用form2,选择客户,要按这种方式,岂不要加10多个构造函数,有简便的方法吗?
用委托调用我觉得和用实例直接调用没有什么区别?

解决方案 »

  1.   

    数据交互要么构造函数,要么全局变量。你要from2影响from1,用委托+invoke吧
      

  2.   

    其实就是Form1中打开Form2选择客户,然后将选择结果返回到Form1对吧?
    这样就容易了,将Form2做成模态窗体,再用属性包装选中的客户编号和名称,然后在Form1中让Form2.ShowDialog(),取得返回值为OK的时候访问属性即可
      

  3.   

    完全可以通过一个FORM1实现,加一个MENU
      

  4.   

    我就不太明白什么叫传递窗体实例
    form1中很自然需要创建form2的对象,已经存在这个对象了,还传什么?