加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 00:16:56 所属栏目:百科 来源:网络整理
导读:我有两种形式.一个是带有按钮和文本框的父表单.单击该按钮时,会打开一个对话框,打开子窗体,该子窗体又具有文本框和按钮.现在我想要的是,当子窗体文本框中的文本更改时,父窗体文本框中的文本会自动更改.为了获得这个,我所做的是, Form3 f3 = new Form3();f3.d
我有两种形式.一个是带有按钮和文本框的父表单.单击该按钮时,会打开一个对话框,打开子窗体,该子窗体又具有文本框和按钮.现在我想要的是,当子窗体文本框中的文本更改时,父窗体文本框中的文本会自动更改.为了获得这个,我所做的是,

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

解决方法

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

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

希望能帮助到你.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读