我有两种形式。一个是带有按钮和文本框的父表单。单击该按钮时,会打开一个对话框,打开子窗体,该子窗体又具有文本框和按钮。现在我想要的是,当子窗体文本框中的文本更改时,父窗体文本框中的文本会自动更改。为了获得这个我所做的是,
Form3 f3 = new Form3();
f3.delBetInpTxt.TextChanged +=new EventHandler(delBetInpTxt_TextChanged);
public void delBetInpTxt_TextChanged(object sender, EventArgs e)
{
TextBox t = (TextBox)sender;
simDelTxt.Text = t.Text + " ms";
}
我在父表单中添加了上面的代码,子表单是Form3。但没有任何反应,即使在子窗体中的changng文本之后,父窗体文本框仍然没有改变。我在这里做错了。
答案 0 :(得分:13)
您可以以子格式添加事件,并在文本更改时将其上升。然后以父窗体创建事件处理程序并更改父窗体中的文本。 以儿童形式:
public event EventHandler OnChildTextChanged;
private void textBox1_TextChanged(object sender, EventArgs e)
{
if(OnChildTextChanged != null)
OnChildTextChanged(textBox1.Text, null);
}
以父母形式:
private void button1_Click(object sender, EventArgs e)
{
ChildForm child = new ChildForm();
child.OnChildTextChanged += new EventHandler(child_OnChildTextChanged);
child.ShowDialog();
}
void child_OnChildTextChanged(object sender, EventArgs e)
{
textBox1.Text = (string)sender;
}
希望它有所帮助。