是这样的,我创建了一个form3这个是提供门店名称选择的,我其他的form1,form2,form4,form5,都要调用form3来选择部门,并且把选出来的数据传值给调用他的窗体,,就是不知道怎么处理分别调用并且传值请大侠们帮帮忙

解决方案 »

  1.   

    调用时候直接NEW出一个新的form3窗体,并显示而至于传值 可以在调用的窗体设置静态变量,然后被调用窗体改变其值就可也可以再被调用窗体中设置属性,然后供调用窗体调用
      

  2.   

    form3 f3=new form3()
    f3.ShowDialog()
    可以调用打开form3
    建个变量 public static string mendianname=xx;
    xx是你选择的门店
    在其他窗口就可以用mendianname来赋值了
      

  3.   

    一楼的加上我说的已经很清楚了,何况我把部分代码都写出来了,说的这么明白了你还不会写吗,非要copy么
      

  4.   

    每次调用时,new一下form3就可以了。把要传递的值作为form3的属性传递即可。
      

  5.   

    闲的没事干,来给你代码  public partial class Form2 : Form//这就是你的form3
        {        public delegate void afterselectdel(object sender, selectedEventArgs e);
            public event afterselectdel afterselected;
            public Form2()
            {
                InitializeComponent();
                this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form2_FormClosed);
            }        public class selectedEventArgs:EventArgs
            {
                private string _value;            public selectedEventArgs(string value)
                {
                    _value = value;
                }
                public string myValue
                {
                  get { return _value; }
                  set { _value = value; }
                }
            }        private void Form2_FormClosed(object sender, FormClosedEventArgs e)//窗口关闭引发afterselected事件
            {
                if (this.afterselected != null)
                    this.afterselected(this, new selectedEventArgs(this.comboBox1.SelectedText));
            }
        }
    调用方:        private void button3_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2();
                f2.afterselected += new Form2.afterselectdel(f2_afterselected);
                f2.Show();
            }        void f2_afterselected(object sender, Form2.selectedEventArgs e)
            {
                MessageBox.Show(e.myValue);
            }
      

  6.   


    public partial class Form2 : Form//这就是你的form3,就是用来供其他窗口选择数据用的
        {        public delegate void afterselectdel(object sender, selectedEventArgs e);
            public event afterselectdel afterselected;
            public Form2()
            {
                InitializeComponent();
                this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form2_FormClosed);
            }        public class selectedEventArgs:EventArgs//自定义一个事件参数类,用来传递事件发生时感兴趣的信息
            {
                private string _value;            public selectedEventArgs(string value)
                {
                    _value = value;
                }
                public string myValue
                {
                  get { return _value; }
                  set { _value = value; }
                }
            }        private void Form2_FormClosed(object sender, FormClosedEventArgs e)//窗口关闭引发afterselected事件,当然也可以放在其他事件处理程序里面,根据需求改
            {
                if (this.afterselected != null)
                    this.afterselected(this, new selectedEventArgs(this.comboBox1.SelectedText));
            }
        } private void button3_Click(object sender, EventArgs e)
            {
                Form2 f2 = new Form2();
                f2.afterselected += new Form2.afterselectdel(f2_afterselected);//所有需要回传值的窗口都实例化Form2并注册afterselected事件
                f2.Show();
            }        void f2_afterselected(object sender, Form2.selectedEventArgs e)
            {
                MessageBox.Show(e.myValue);//e.myValue就是Form3的Combobox选中的值,也可以通过修改selectedEventArgs类来添加想回传的数据
            }
      

  7.   

    在你的form3 中定义一个公有静态变量保存你需要传回去的信息
    比如        public static string str = "需要传回去的数据";
    然后在form1,form2,form4,form5中就可以用
    form3.str来访问传回来的值了使用这样
    form3 f3=new form3()
    f3.ShowDialog()
    可以调用打开form3
      

  8.   

    http://blog.csdn.net/chenpeng0118/article/details/6858953窗体间传值,可以看看,我一直这样用。
      

  9.   


    我用了你的方法,可是不能自动调用那个.str。怎么打不出来啊!!!