我的两个窗体同时都打开啦 我在一个窗体中选中一个值然后这个窗体点击确定消失  另外一个窗体显示我选中的这个值   如何解决呀各位  好心人

解决方案 »

  1.   

    //Form1 中声明一个共有字段或属性,如GetData
    //这是Form1中打开Form2的代码
    private void GetValue() {
      Form2 fm = new Form2(this);
      fm.Show();
    }//修改Form2的构造函数,传入Form1,
    //Form2中关闭的时候,设置值。
    public Form2(Form1 fm1){
    /、……
    FM1 = fm1;
    }
    private Form1 FM1;
    private void btnClose_Click(object sender,EventHandler e) {
      if(FM1 != null)
        FM1.GetData = "你选择的内容";
      this.Close();
    }
      

  2.   

    通过公共静态类进行传值;  
    通过绑定事件进行传值;  
    使用Attribute  
    public partial class Form1 : Form  
      {  
      private void button1_Click(object sender, EventArgs e)  
      {  
      Form2 frm2 = new Form2();  
      frm2.Show(this);  
      }  
      }    public partial class Form2 : Form  
      {  
      private void button1_Click(object sender, EventArgs e)  
      {  
      Form1 frm1 = (Form1)this.Owner;  
      ((TextBox)frm1.Controls["textBox1"]).Text = this.textBox2.Text;  
      this.Close();  
      }  
      }  
      

  3.   

    最直接的方法就是...来Q我吧..QQ免费解答.342067627嘿嘿..
      

  4.   

    我找过类似的方法,你看看我的这个例子.添加2个窗体FORM1 FORM2。FORM1里头添加一个按钮bottom1和一个commbox1,bottom1用来控制你说的隐藏该主窗体,在FORM2里面显示出你选的值,combobox1用来选择你要的值。在FORM2里头添加一个combox1用来接收你选的值的显示。主要代码:FORM1里头:using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;namespace 窗体传值
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private List<string> objList;        public List<string> ObjList
            {
                get { return objList; }
                set { objList = value; }
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                objList = new List<string>();
                objList.Add("saber");
                objList.Add("maylee");
                //楼主这里可以自己动态添加选择项
                comboBox1.DataSource = objList;
            }        private void button1_Click(object sender, EventArgs e)
            {
                Form2 frm = new Form2();
                frm.Owner = this;
                frm.Show();
                this.Hide();        }
        }
    }
    Form2里头:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;namespace 窗体传值
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }        private void Form2_Load(object sender, EventArgs e)
            {
                Form1 frm;
                frm = (Form1)this.Owner;
                comboBox1.DataSource = frm.ObjList;
                           }
        }
    }
    这样也能传值成功,可以把窗体1里面的Combox值传到窗体2里面的COMBOX里头,这样你可以在form2里面选择你要的东西,呵呵,换了种思路,看你用得上么。以上是全部代码,复制运行即可。
      

  5.   

    //Form1 中声明一个共有字段或属性,如GetData
    //这是Form1中打开Form2的代码
    private void GetValue() {
      Form2 fm = new Form2(this);
      fm.Show();
    }//修改Form2的构造函数,传入Form1,
    //Form2中关闭的时候,设置值。
    public Form2(Form1 fm1){
    /、……
    FM1 = fm1;
    }
    private Form1 FM1;
    private void btnClose_Click(object sender,EventHandler e) {
      if(FM1 != null)
        FM1.GetData = "你选择的内容";
      this.Close();
    }
      

  6.   

    通过公共静态类进行传值;   
    通过绑定事件进行传值;   
    使用Attribute   
    public partial class Form1 : Form   
      {   
      private void button1_Click(object sender, EventArgs e)   
      {   
      Form2 frm2 = new Form2();   
      frm2.Show(this);   
      }   
      }     public partial class Form2 : Form   
      {   
      private void button1_Click(object sender, EventArgs e)   
      {   
      Form1 frm1 = (Form1)this.Owner;   
      ((TextBox)frm1.Controls["textBox1"]).Text = this.textBox2.Text;   
      this.Close();   
      }   
      }