在C#中从父窗体的子窗体中为控件添加事件处理程序

我有两种forms。 一个是带有按钮和文本框的父表单。 单击该按钮时,对话框将打开子窗体,该子窗体又具有文本框和按钮。 现在我想要的是,当子窗体文本框中的文本更改时,父窗体文本框中的文本会自动更改。 为了获得这个我所做的是,

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文本之后,父窗体文本框仍然没有改变。 我在这里做错了。

您可以以子格式添加事件,并在文本更改时将其上升。 然后以父窗体创建事件处理程序并更改父窗体中的文本。 以儿童forms:

 public event EventHandler OnChildTextChanged; private void textBox1_TextChanged(object sender, EventArgs e) { if(OnChildTextChanged != null) OnChildTextChanged(textBox1.Text, null); } 

在父母forms:

 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; } 

希望能帮助到你。