C# 将值从 MDI 父窗体传递给子窗体

C# Passing of value from MDI parent form to child

我需要有关如何将值从 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 让我知道它是否真的从父表单中获取值,但它只是 returns 空。

我也试过了 and this

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

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