0

child1 から child2 フォームに問題なくデータを転送し、child1 フォームから child2 を開くことができます。しかし、メイン メニュー バーから 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) を開き、テキスト ボックスにユーザーの詳細を表示する必要があります。Pls はヘルプまたはアドバイス。

ありがとう

4

1 に答える 1

0

私があなたのコードを正しく理解していれば、あなたのプロパティParamSetはデータを保持していませんが、値を読み取って設定するだけですtxtHolidaySurname.Text

したがって、 afterForm_Loadテキストボックスが空の場合は、後でtxtHolidaySurname.Textデフォルト値 ('') にリセットされた可能性がありますh.ParamSet=Param

名前を保存してからテキストボックスに入れてみてくださいForm_Load

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

で同じコードにForm_Loadなります....

于 2013-02-27T16:36:58.740 に答える