在我當前的應用程序中,我有一個main form: frmMain
,其中有一個statusstrip
和一個label: lblStatus
。 我想從我的用戶控件,我添加到我的主窗口中更新標籤,當我點擊有關按鈕:從用戶控件更新主表單中的標籤
ucBeheer ucBeheer = new ucBeheer();
splitContainer1.Panel2.Controls.Add(ucBeheer);
從我usercontrol
裏面,當我做一個動作,我想更新lblStatus
。我曾嘗試加入以下屬性來我的主要形式有:
public string updateStatus
{
get { return lblStatus.Text; }
set { lblStatus.Text = value; }
}
然後訪問這樣的方法在我的用戶控件:
frmMain mainForm = new frmMain();
mainForm.updateStatus = "This is a test";
但是,這並不工作,我知道,這是因爲我在做我的frmMain
的新對象,但我不知道如何解決,否則這個?
我也發現了following way,Event Handler
,但我不能這樣做,因爲我的用戶控件實際上並沒有在我的mainForm中,直到我點擊按鈕添加它,所以我沒有有一個參考。
所以我有點出出主意,我希望有人能幫助我。 謝謝, 托馬斯
編輯:所以我設法做到這一點的方式如下:
frmMain owningForm = (frmMain)this.Parent.Parent.Parent.Parent;
owningForm.updateStatus = "This is a test";
但this.Parent.Parent.Parent.Parent...
並沒有真正看起來良好的編碼對我來說,有沒有其他的方式來獲得最頂級家長?
謝謝,這工作! :) – Schoof 2012-04-03 07:51:24