簡體   English   中英

隱藏表格后如何再次顯示?

[英]How to show a form again after hiding it?

我有兩個 forms。我需要用一個按鈕打開第二個表單。 當我打開 form2 時,我隱藏了 form1。 但是,當我嘗試使用按鈕從 form2 再次顯示 form1 時,它不起作用。 我的 form1 代碼是:

Form2 form2 = new Form2();        
form2.ShowDialog();

里面的form2代碼:

Form1.ActiveForm.ShowDialog();

或者

Form1.ActiveForm.Show();

或者

form1.show(); (form1 doesn't exist in the current context)

不起作用。 我不想打開新表格

Form1 form1 = new Form1();   
form1.ShowDialog();

我想顯示我之前隱藏的表格。 或者我可以將它最小化到任務欄

this.WindowState = FormWindowState.Minimized;

並再次從 form2 最大化它。

Form2.ActiveForm.WindowState = FormWindowState.Maximized;

但是我嘗試的方式再次不起作用。 這些方式有什么問題?

你可以試試(點擊Form1按鈕)

Hide();
Form2 form2 = new Form2();        
form2.ShowDialog();
form2 = null;
Show();

或(它應該工作)

Hide();
using (Form2 form2 = new Form2())       
    form2.ShowDialog();
Show();

保留Form1的實例並將其用於ShowHide

如果您顯示如下所示的form2,則可以通過Owner屬性從Form2訪問Form1:

form2.ShowDialog( form1 )

或者像這樣:

 form2.Show( form1 )

請注意,您不必使用ShowDialog導致隱藏,並且可以在Form2中移動顯示邏輯

這種方法是我發現最適合我的方法

初級表格

Form2 form2 = new Form2(this);

中學表格

private Form Form1
public Form2(Form Form1)
{
    InitializeComponent();
    this.Form1 = Form1;
    Form1.Hide();
}

稍后關閉時

private void btnClose_Click(object sender, EventArgs e)
{
    Form1.Show();
    this.Close();
}
      FormCollection frm = Application.OpenForms;

        foreach(Form f in frm)
        {
            if(f.Name=="yourformname")
            {
                f.Show();
                this.Close();                    
                this.Dispose();
                return;
            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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