我怎麼做到這一點,當我點擊Form1(主窗體)中的一個按鈕時,它將打開Form2,同時也更改標籤的文本(Label4)。如何使點擊按鈕更改其他形式的標籤文本?
我對按鈕當前代碼:
Admin objFrmAdmin = new Admin();
this.Hide();
objFrmAdmin.Show();
我不想改變形式我只想補充它,當我點擊該按鈕打開的形式,它也將放映碼更改Form2中標籤上的文本。
我怎麼做到這一點,當我點擊Form1(主窗體)中的一個按鈕時,它將打開Form2,同時也更改標籤的文本(Label4)。如何使點擊按鈕更改其他形式的標籤文本?
我對按鈕當前代碼:
Admin objFrmAdmin = new Admin();
this.Hide();
objFrmAdmin.Show();
我不想改變形式我只想補充它,當我點擊該按鈕打開的形式,它也將放映碼更改Form2中標籤上的文本。
您使用對象heirarchy直接更改標籤。
Admin objFrmAdmin = new Admin();
this.Hide();
objFrmAdmin.lblLabelToChange.Text = "Your Test Here"; //<= this line.
objFrmAdmin.Show();
如果標籤沒有出現在intellisense中,那麼您可能需要將其公開。另一種方法是使用構造函數,並傳遞新的測試:
Admin objFrmAdmin = new Admin("The new text");
雖然你的第一個建議將解決OP的問題,但是控制'public'通常不推薦使用,因爲一個表單由另一個表單控制。這會導致混淆,更高的可維護性等。 – Nino
謝謝!第一個代碼適合我:) –
變化Admin
形式構造,這樣的事情:
//add parameter text
public Admin(string text)
{
InitializeComponent();
//change label 4 text
this.Label4.Text = text;
}
改變你initalizing Admin
形式是這樣的方式:
Admin objFrmAdmin = new Admin("text to show on label");
this.Hide();
objFrmAdmin.Show();
編輯:另一種方式來實現即到在管理表單上公開方法並調用它。所以,離開構造不帶參數,就像是和公開方法的Admin
形式,像這樣:
public void ChangeText(string text)
{
this.Label4.Text = text;
//put other code here if needed, ie. hide buttons or something like that
}
現在,只需調用該方法你初始化你Admin
表後。
Admin objFrmAdmin = new Admin();
this.Hide();
objFrmAdmin.ChangeText("text to show");
objFrmAdmin.Show();
這也工作感謝這個尼諾! :D –
做您嘗試使用form.button1.label =值 –
是的,但訪問控制形式:
通過調用它由於某些原因無法從Form1代碼找到Form2上的任何控件。 –
行 - 需要將控件設爲Public。 – ainwood