Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
778 views
in Technique[技术] by (71.8m points)

winforms - Adding an event handler for a control in child form from parent form in C#

I have two forms. One is a parent form with a button and a text box. On click of the button, a dialog opens the child form which in turn has a textbox and a button. Now what I want is whenever the text in the child form textbox changes the text in the parent form textbox changes automatically. To acquire this, what I did is:

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

I added the above code in the parent form and the child form is Form3. But nothing happens, the parent form textbox still doesn't change even after changing the text in the child form. What am I doing wrong here?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can add event in child form and rise it when text changed. Then create event handler in parent form and change text in parent form. In child form:

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

In parent form:

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

Hope it helps.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...