簡體   English   中英

如何修改一個表單並從另一個表單刷新它

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM