[英]How to modify a Form and refresh it from another Form
我使用兩種形式:
Form1包含button1
Form2包含button2和Panel1
我的項目開始使用Form2。 然后我單擊button2以顯示Form1
private void button2_Click(object sender, EventArgs e)
{
Form1 Frm = new Form1();
Frm.Show();
}
然后在Form1上,我單擊button1以在Form2上隱藏Panel1
private void button1_Click(object sender, EventArgs e)
{
Form2 FormInstance = new Form2();
FormInstance.displayInit();
FormInstance.Refresh();
}
displayInit()是Form2中的一種方法:
public void displayInit()
{
panel1.Visible = false;
}
但是面板沒有隱藏,由於刷新問題,請問有什么想法嗎?
使兩種形式(或任何兩種類別)相互交談的標准方法是事件。
根據您的情況,將此代碼添加到Form1
代碼的頂部:
public event ClosePanelHandler ClosePanel;
public delegate void ClosePanelHandler(object sender, EventArgs e);
然后,在Form1
的Button1_Click事件中(這引發事件):
private void button1_Click(object sender, EventArgs e)
{
if (ClosePanel != null){
ClosePanel(this, new EventArgs());
}}
--
最后, Form2
需要處理事件(並正在監聽事件)以便采取措施:
private void HandleCloseRequest(object sender, EventArgs e)
{
panel1.Visible = false;
}
另外,修改
private void button2_Click(object sender, EventArgs e)
{
Form1 Frm = new Form1();
Frm.ClosePanel += HandleCloseRequest;
Frm.Show();
}
我希望這個能有一點幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.