日期:2014-05-18  浏览次数:20987 次

C#中,如何在一个窗口中调用另一个窗口中TextBox里已有的值
现有以Form,名为Main,其中Main中有一TextBox1,里面有一个值;

需要在另一个窗口CheckIn中读取Main中TextBox1的值到一个string类型的变量中去。

怎么做?求代码,谢谢!

------解决方案--------------------
CheckIn new 的时候 把 Main 的 Textbox1 传递进去作为参数 给 CheckIn 类的一个对象
之后 CheckIn 类 就能获取了
------解决方案--------------------
烦死了,基本的传值都弄得这么费劲

CheckIn中做一个public属性
public string MyStr
{
set{this.textbox1.Text = value;}
}

,main中给CheckIn.MyStr赋值

或者把main中的textbox的modifers改为public这样,把main的实例传给CheckIn,这样就可以通过实例访问了,比如frmMain.textbox1.Text
------解决方案--------------------
C# code

// 在Main中弹出CheckIn:
CheckIn ci = new CheckIn(this.TextBox1.Text);

// 添加一个CheckIn窗口的构造函数:带string参数的

------解决方案--------------------
网上很多这种问题的教程吧?

我的做法,在Main中有一TextBox1
public String TextBox1Text
{
get { return TextBox1.Text; }
set {TextBox1.Text = value; }
}
在另一窗口
赋值 Main.pCurrentWin.TextBox1Text= "是:";
取值 string xxx =Main.pCurrentWin.TextBox1Text.Text;

------解决方案--------------------
这实际上就是涉及同一进程中窗体间传参数的问题
1.可以在第二个窗体中建立一个属性,string类型的
2.也可以在第二个窗体中建立一个方法,方法中给string类型变量赋值
3.也可以通过楼上的朋友说的再第二个窗体的构造函数中传string类型参数
如果是多个进程中的窗体传参数,那就会涉及到进程通讯的问题,也有很多办法
1.消息队列
2.PIPE管道
3.tcp/udp
等进程通讯方式均可