2013-02-23 138 views
0

我能够将数据从子窗体1传输到子窗体2,并且从子窗体1打开子窗体2,但是我需要打开子窗体2的主菜单栏并已经在文本框中传输了数据。数据没有到达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; 
} 

我需要帮助的:从主在successeful登录我需要打开HolidayApp(CHILD2)菜单栏并在文本框中提供用户详细信息。请帮助或建议。

感谢

回答

0

如果我理解正确的代码,然后 你的财产ParamSet不保留任何数据,而只是阅读和txtHolidaySurname.Text

设定值

所以,如果以后文本框为空,那么也许txtHolidaySurname.Text被重置至h.ParamSet=Param后的默认值('')。

尝试只在

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

保存的名称,然后放入文本框在将是相同的代码....

+0

感谢的reply.I试图everyhting我想我失踪东西。我把代码放在form_Load中,但是然后表单加载数据不在那里。 – user2064345 2013-02-28 09:33:50

+0

@ user2064345 id txtHolidaySurname.Text是否为空?你把我的代码放在Child2(HolidayApp)表单中吗? – Fabio 2013-02-28 10:46:19

相关问题