现在有两个Form:
Form1中有TtextBox1和button1两个控件
Form2有两个dateTimePicker1,dateTimePicker2和一个button2三个控件现在我需要点击Form1的button1显示Form2(Form1也显示)
在Form2中的dateTimePicker1和dateTimePicker2设置时间  
点击button2把dateTimePicker1和dateTimePicker2的时间提交到TextBox1中显示这个怎么做啊

解决方案 »

  1.   

    构造函数传值public返回值委托
      

  2.   

    winform间传值   
    通过公共静态类进行传值;  
    通过绑定事件进行传值;  
    使用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)  
      {  
       //dateTimePicker2.Value
      Form1 frm1 = (Form1)this.Owner;  
      ((TextBox)frm1.Controls["textBox1"]).Text = this.textBox2.Text;  
      this.Close();  
      }  
      }  
      

  3.   

    在Form2里面放一个Form1的对象
    Form2.CS里面
    Form1 form1=null;
    Form2的构造函数
    Form2(Form1 form1)
    {
    .....
    this.form1=form1;
    }在form1里面的button1.Click里面把form2给show出来
    点击form2的button2.click里面把
    form1.TtextBox1.Text=你要赋给的值
      

  4.   


    出错了 
    ((TextBox)frm1.Controls["textBox1"]).Text = this.textBox2.Text;
    未将对象引用设置到对象的实例。 未将对象引用设置到对象的实例。
      

  5.   

    可以通过委托来实现
    Form1代码private void button1_click(object sender, EventArgs e)
            {
                Form2 f2= new Form2 ();
                f2.AfterSelectedCode += new Form2.SelectedCodeHandler
    (f2_AfterSelectedCode);
                f2.ShowDialog();
            }
    private void f2_AfterSelectedCode(DataTable dtDetail)
            {
            }
      

  6.   

    Form2代码 public partial class Form2 : Form
        {
            public delegate void SelectedCodeHandler(DataTable dt);
            public event SelectedCodeHandler AfterSelectedCode;        public Form2 ()
            {
                InitializeComponent();
            }
             private void Form2_Load(object sender, EventArgs e)
            {
            }
            private void button2_Click(object sender, EventArgs e)
            {
                if (AfterSelectedCode != null)
                {
                //创建一个DataTable将两个时间放进去,或者也可以直接传两个字符串
                AfterSelectedCode(参数);
                this.Close();
                }
                this.Close();
            }