请教下如何把一个窗口中的textbox里的值传输到另一个窗口的textbox里并关闭当前窗口?

解决方案 »

  1.   

    http://ccj188.blog.51cto.com/447493/193792
      

  2.   

     将Form1的TextBox设定为Public,在Form2中直接传值给TextBox2
      

  3.   

    构造函数 比较方便,直接传TEXTBOX或者TEXTBOX的值都行
      

  4.   

    构造函数
    属性
    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();  
      }  
      }  
      

  5.   

    第一种方法:构造函数传递
    Form1执行方法:Form2 form2=new Form2(textBox1.Text);
    this.Close();Form2构造函数
    public TestForm(string s)
     {
     InitializeComponent();
     string mystr=s;  
     }第二种方法:公共变量
    Form2;
     public string Mystr=null;Form1执行方法:
    Form2 form2=new Form2();
    form2.Mystr=textBox1.Text;
    form2.Show();
    this.Close();
    第三种方法:公共方法
    Form2
    string Mystr=null;
    public void getstring(string s)

     mystr=s;
    }
    Form1执行方法:
    Form2 form2=new Form2();
    form2.getstring(textBox1.Text);
    form2.Show();
    this.Close();
    第4种方法:
    公开的static属性,很原始,不建议使用
      

  6.   

    以上楼给出的答案都可以满足你的需求。我只是加几句:我建议你在遇到这种问题的时候,去Google一下相关Best Practices。这种问题属于常见问题,早已经有了最佳解决方案,所以借这个机会你应该去学习一下那些比较规范的做法,而不是完成这个功能就算了。
      

  7.   

    子窗体定义个全局变量,把要传的值给它
    C# codestring m_ProID = "";
           
            public string ProID
            {
                set { this.m_ProID = value; }
                get { return this.m_ProID; }
            }父窗体弹出子窗体按钮的时间里写
    C# code
    Form2 f2 = new Form2();
                    if (DialogResult.Abort == f2.ShowDialog(this)) 
                    {
                        return;
                    }                if (f2.ProID != "" && f2.ProID != null)
                    {
                        this.txtProjectID.Text = f2.ProID; //这里把值就给这个文本框了
                    }
      

  8.   

    public partial class Form1 : Form   
      {   
      private void button1_Click(object sender, EventArgs e)   
      {   
      Form2 frm2 = new Form2(); 
      frm2.Textbox="textbox的内容";  
      frm2.Show();
      this.Close(); 
      }   
      }     public partial class Form2 : Form   
      {   
      private string textbox;
      public string Textbox
      {
          set{textbox=value;}
          get{return textbox;}
      }
      private void Form2_Load(object sender, EventArgs e)   
      {   
          控件=Textbox;  
      }   
      } 
      

  9.   

    创建2个窗口,接收数据主要窗口为IndexForm,传递数据的窗口为LoginFomr。
    IndexForm创建下面这样一个。
     public void GetLoginName(string LoginName)
            {}
    LoginFomr代码:
    IndexForm index = new IndexForm();
                        index.GetLoginName("用户数据");
    这样子,主要窗口IndexForm的LoginName就是LoginForm窗口传过来的"用户数据"。