例如form1窗体中textbox1输入的值 如何在form2的窗体代码中使用?我目前的用法1.设置TEXTBOX1的修改属性为public
2在 form2的公用代码区域定义 form1 ob_fom1 = new form1  
应用ob_fom1.textbox1.text值的方式来去TEXTBOX1的值  结果去到的值为空!!
3.我在textbox1的text属性设置为为某个值时, 上面的方法能实现取值, 但是调试程序时输入的值 为什么不能取呢?
请高人解答 谢谢!

解决方案 »

  1.   


    在 form2的公用代码区域定义 form1 ob_fom1 = new form1  
    应用ob_fom1.textbox1.text值的方式来去TEXTBOX1的值  结果去到的值为空!!
    =====================================根据你的描述,我只能认为你每次都重新new了一个form,所以每次都新的控件
      

  2.   

    我觉得也是这样  关于这个new了一个form  比如 form1  form2 form3  
    我是否需要在  每个窗体的公用代码区域 form1 中 new   form2 form3  
    form2中 new   form1 form3  
    form3 中 new   form1 form2  
      

  3.   

    你观察一下就会发现,Form1的构造函数中调用了一个方法,InitializeComponent(),而你直接设置默认值的话将在InitializeComponent中生成一些赋值的代码。
    所以你new From1的时候其实调用了这个赋值的代码,所以可以取到值。而运行时,你在修改Form1的TEXTBOX1的值的时候,是修改的form1当前实例对象中的值。
    而你在form2种,重新new出来的form1当然不会随着更改了。因为你new的对象和当前运行中的对象是2个不同的对象。Form1中:
                Form2 f2 = new Form2();
                f2.Owner = this;
                f2.Show();Form2中:
                Form1 f1 = this.Owner as Form1;
                string str = f1.textBox1.Text;需要把Form1中textbox1的Modifiers设置为公开。
      

  4.   

    form中打开form2事件form2 f=new form2();
    f.txt=textbox1.Text;
    f.show();form2中
    public string txt{get;set;}
    在form2中使用txt就可以了,,