2016-11-28 11 views
2

次のような状況があります。子フォームからMDI親フォームのラベルテキストにアクセスできません

私は、将来の使用のために、MDI親フォーム(ラベル内)に成功ログイン後にユーザー名を保存します。しかし、私は子フォームからそのラベルのテキストにアクセスしようとしています。それは何も示していない。私はこのような親フォーム内のラベルプロパティ...

public string UserNameText 
{ 
    get 
    { 
     return this.lblUserName.Text; 
    } 

    set 
    { 
     this.lblUserName.Text = value; 
    } 
} 

を暴露しかし、私は子供からそのラベルのテキストにアクセスしようとしていたときに、それは空の文字列を示すのフォーム。ここでは、子フォームボタンのクリックのコードです。

private void button1_Click(object sender, EventArgs e) 
{    

    frmHome Home = new frmHome(); //frmHome is name of my parent Form. 
    MessageBox.Show(Home.UserNameText); 
} 
+5

新しい 'frmHome'を作成しています。あなたはすでに持っているものにアクセスしません。 'ParentForm'にアクセスしてみてください – Pikoh

答えて

3

このようにそれを試してみてください:MDI子フォームは、MdiParentが正しい設定された性質を持っている場合にのみ動作すること

private void button1_Click(object sender, EventArgs e) 
{    
    frmHome Home = (frmHome)this.ParentForm; 
    MessageBox.Show(Home.UserNameText); 
} 

は注意してください。

関連する問題