将数据从子表单传输到子表单并从父表单打开child2

时间:2013-02-23 09:28:19

标签: c# windows winforms

我能够将数据从child1传输到child2形式没问题,并从child1表单打开child2。但是我需要在主菜单栏中打开child2并在textboxes中传输数据。数据没有得到到child2然后我从父表单打开child2。 这是代码: Child1(官员登录)

public string s;

public string Param
{
   get { return s; }
   set { s = value; }
}

public void LoginMethod()
{

   try
   {

       OfficerBO user = new OfficerBO ();
       user.OfficerID = txtOfficerId.Text;
       user.Password = hs.PassHash(txtPassword.Text);


       if (user.Login())
       {
            s = user.LastName;           

            MessageBox.Show("You Loged in Successfully\n\n" + user.FirstName +
                " " + user.LastName ); 
            OnLoginSuccess(null, null);               

            // this.Hide();
            HolidayApp h = new HolidayApp(); 
            // Data gets transfered into Child2 (HolidayApp) form 
            //and dialog opens no problem
            h.ParamSet = Param;
            h.ShowDialog();
       }
       else
       {
            txtOfficerId.Text = "";
            txtPassword.Text = "";
            MessageBox.Show("Invalid details");
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error " + ex.Message);
    }
}

Child2(HolidayApp):

public string ParamSet
{
    get { return txtHolidaySurname.Text; }
    set { txtHolidaySurname.Text = value; }
}
public void HolidayApp_Load(object sender, EventArgs e)
{
    txtHolidaySurname.Text = ParamSet;
}

我需要帮助:在成功登录时,我需要从主菜单栏打开HolidayApp(Child2)并在文本框中显示用户详细信息。请帮忙或建议。

由于

1 个答案:

答案 0 :(得分:0)

如果我理解你的代码那么 您的媒体资源ParamSet没有保留任何数据,只是阅读并设置txtHolidaySurname.Text

的值

因此,如果在Form_Load文本框为空后,txtHolidaySurname.Text可能会h.ParamSet=Param重置为默认值('')。

尝试保存一个名称,然后将文本框放入Form_Load

private string sParam;
public string ParamSet
{
    get { return this.sParam;}
    set { this.sParam=value;}
}

Form_Load中将使用相同的代码....