关于不同窗体间TEXTBOX控件传值的问题
例如form1窗体中textbox1输入的值 如何在form2的窗体代码中使用?
我目前的用法
1.设置TEXTBOX1的修改属性为public
2在 form2的公用代码区域定义 form1 ob_fom1 = new form1
应用ob_fom1.textbox1.text值的方式来去TEXTBOX1的值 结果去到的值为空!!
3.我在textbox1的text属性设置为为某个值时, 上面的方法能实现取值, 但是调试程序时输入的值 为什么不能取呢?
请高人解答 谢谢!
------最佳解决方案--------------------你观察一下就会发现,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设置为公开。
------其他解决方案--------------------
在 form2的公用代码区域定义 form1 ob_fom1 = new form1
应用ob_fom1.textbox1.text值的方式来去TEXTBOX1的值 结果去到的值为空!!
=====================================
根据你的描述,我只能认为你每次都重新new了一个form,所以每次都新的控件
------其他解决方案--------------------form中打开form2事件
form2 f=new form2();
f.txt=textbox1.Text;
f.show();
form2中
public string txt{get;set;}
在form2中使用txt就可以了,,
------其他解决方案--------------------我觉得也是这样 关于这个new了一个form 比如 form1 form2 form3
我是否需要在 每个窗体的公用代码区域 form1 中 new form2 form3
form2中 new form1 form3
form3 中 new form1 form2
------其他解决方案--------------------为什么我直接写在属性里的值 在别的窗体调用就没问题呢?