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

如何在关闭一个窗口的同时为另一个窗口中的textBox赋值?
如题,请给出代码,谢谢!

------解决方案--------------------
form1
C# code

private void button1_Click(object sender, EventArgs e)
{
    Form2 f2 = new Form2();
    f2.Show(this);
}

------解决方案--------------------
from1的代码
private void button1_Click(object sender, EventArgs e)
{
From2 f=new From2("要传人的值");
}
from2的 
public frm_ShortCut(string s)
{
InitializeComponent();
str=s;
}
private string str="";


------解决方案--------------------
Form3窗体 放一个Label,手动将Label的访问权限改为 public 。
Form4窗体 放一个Form3的属性
public partial class Form4 : Form
{
public Form3 f3;
public Form4()
{
InitializeComponent();
}

private void Form4_Load(object sender, EventArgs e)
{
}

private void Form4_FormClosed(object sender, FormClosedEventArgs e)
{
if (f3 != null)
{
f3.label1.Text = "OK";
}
}
}
在一个主窗体中From2
private void Form2_Load(object sender, EventArgs e)
{
Form4 f4 = new Form4();
f4.f3 = new Form3();
f4.Show();
f4.f3.Show();
}
------解决方案--------------------
看我的,刚刚弄过
父窗里代码加一个子窗的关闭事件:


chidform cf = new chidform();
cf.FormClosing += new FormClosingEventHandler(bookIndex_FormClosing);
cf .show()

在父窗再加把FormClosingEventHandler里加个方法给textbox赋值就OK了
------解决方案--------------------
设有窗口FormA和FormB:关闭FormA时写:
FormB formB=Application.OpenForms["FormB"] as FormB;
formB.textBox1.Text="新值";

FormB的textBox1要设置为public。这样键入formB.后textBox1就出来了。
------解决方案--------------------

private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2 .SetValues+= new f2 .SetValuesHandler(f2_SetValues);
f2.Show();
}

void f2_SetValues(string txt)
{
textBox.text=txt;
}



public delegate void SetValuesHandler(string text);
public event SetValuesHandler SetValues;
private void button1_Click(object sender, EventArgs e)
{
SetValues("text");
this.Close();
}


------解决方案--------------------
搞那么复杂干吗 就A页面定义 static public string bl = "";

A页面 调用B 按钮代码如下

XzmxForm xzmx = new XzmxForm(); //实例化B页面
xzmx.htbh = htbh.Text.ToString();
DialogResult dr = xzmx.ShowDialog();
if (dr == DialogResult.OK)
{

}


B页面操作完 后
A.bl = ""; //这里你要B到A的值

this.DialogResult = DialogResult.OK;

------解决方案--------------------
方法多了,
可以定义委托事件
可以设置控件的访问域
可以自己定义属性来访问
------解决方案--------------------
为何不直接传一个对象过去
TextBox b = new TextBox();
A a = new A(b);
在a里改b的text就可以了