关于c#两窗体间文本框的传值
建两个窗体,每个窗体各有一个textbox和butten ,当点form1 中的butten时,弹出form2,在form2中的textbox输入文字,点butten ,此时form1中的textbox内容和form2中的textbox一样。我做了如下代码,但是实现不了,form1中的textbox内容没有任何反映,请高手指点:
form1中代码:
private void button1_Click(object sender, EventArgs e)
{
Form2 fm = new Form2();
fm.Show();
}
public string t
{
get { return this.textBox1.Text; }
set { this.textBox1.Text = value; }
}
form2中代码:
private void button1_Click(object sender, EventArgs e)
{
Form1 f = new Form1();
f.t = this.textBox1 .Text ;
}
请高手指点,就用属性的方法传值,请不要用别的方法
public Form1 firstForm=null;
在 form1 的 单击事件这样写:
Form2 fm = new Form2();
fm.firstForm = this;
fm.Show();
这样两个窗体就可以互相调用了: 分别使用 fm 和 firstForm;
注意如果其中一个关了, 另一个再调用会有问题. 传值的方法应该有很多种。
1.使用静态变量。
2.将被调用窗体增加一个公开的属性,直接访问就可以了。
3.使用委托,直接修改。 当点击form1中的button时弹出form2用这种方式
private void button1_Click(object sender, EventArgs e)
{
form2 f=new form2();
f.ShowDialog();
}
form2的单击事件:
private void button1_Click(object sender, EventArgs e)
{
form1 f=new form1(你要传到form1的值);
f.ShowDialog();
}
然后在form1窗体中声明一个string型的变量(因为我看到你上面是要获取一个值)
string valuest;//要是全局的哟!
在form1中添加public form1(string nn):this()
{
valuest=nn;
}
private void form1_Load(object sender, EventArgs e)
{
this.txtBox1.text=valuest;
}
这样因该可以实现的!
页:
[1]