当前位置: 代码迷 >> C# >> C# MDI 子窗体之间互相传值有关问题
  详细解决方案

C# MDI 子窗体之间互相传值有关问题

热度:356   发布时间:2016-05-05 03:51:32.0
C# MDI 子窗体之间互相传值问题求助
有三个窗体A B C
窗体A是 MDI 主窗体, 窗体 B 和C 都是被A  show出来的,  现在B窗体如何给C窗体中的TextBox传值?(C窗体主实现日志显示功能)。 B和C是没有父子关系的。 网上搜索了一大堆都是父子关系的窗体传值。求大神给点代码解决问题。
------解决思路----------------------
窗体B和C本身只是同处于一个应用程序,并无直接关联,我认为把窗体A作为中介比较合适.
窗体A代码:
public event Action<string> OnText;
public void TiggerText(string obj)
{
    if (OnText != null)
    {
        OnText(obj);
    }
}

窗体B代码:
(this.ParentForm as FormA).TiggerText("test string");

窗体C代码:
private void FormC_Load(object sender, EventArgs e)
{
    MessageBox.Show(this.ParentForm.Name);
    (this.ParentForm as FormA).OnText += new Action<string>(FormC_OnText);
}
private void FormC_FormClosed(object sender, FormClosedEventArgs e)
{
    (this.ParentForm as FormA).OnText -= new Action<string>(FormC_OnText);
}
void FormC_OnText(string obj)
{
    textBox1.Text = obj;
}
  相关解决方案