C#将值从MDI父表单传递给子表单

时间:2017-09-23 00:49:54

标签: c# forms mdi

我需要有关如何将值从MDI父表单传递给子表单的帮助。 在我的父表单中,我有两个单选按钮,MALE和FEMALE,我将选择其中一个,单击按钮将指定的值发送到子表单。 请参阅下面的代码:

父母表格:

private void ButtonSelect_Click(object sender, EventArgs e)
        {
            if (this.rbMale.Checked)
            {
                string gender= "MALE";
                frmChild childform = new frmChild ();
                childform.GetGender = gender;

                frmChild  newMDIChild = new frmChild (); 
                newMDIChild.MdiParent = this; 
                newMDIChild.Show(); 

            }

            else if (this.rbFemale.Checked)
            {
                string gender= "FEMALE";
                frmChild childform = new frmChild ();
                childform.GetGender = gender;

                frmChild  newMDIChild = new frmChild (); 
                newMDIChild.MdiParent = this; 
                newMDIChild.Show(); 

            }
    }

儿童表格:

public string GetGender { get; set; }

 private void frmChild_Load(object sender, EventArgs e)
        {
            if (GetGender  == Convert.ToString("MALE"))
            {
                 /*my code here*/
            }
            else if (GetGender  == Convert.ToString("FEMALE"))
            {
                /*my code here*/
            }
        MessageBox.Show(GetGender);
        }

我还暂时放了一个MessageBox,让我知道它是否真的从父窗体中获取值,但它只返回空。

我还尝试了thisthis

1 个答案:

答案 0 :(得分:1)

您正在创建两个childForm实例,一个用于分配性别,另一个用于显示性别。您只需要一个实例,更改if else语句

...
if (this.rbMale.Checked)
    {
       string gender= "MALE";    
       frmChild  newMDIChild = new frmChild (); 
       newMDIChild.GetGender = gender;
       newMDIChild.MdiParent = this; 
       newMDIChild.Show(); 
    }
...