所以我有2種形式:C#的WinForms - 在Form2按鈕,隱藏Form1中
- Form1中
- 窗體2
有Form2上的按鈕時,我想有單擊時隱藏Form1。在窗體2
var mainFrm = new Form1();
mainFrm.Hide();
按鈕單擊按鈕,從這個什麼都不做。我顯然缺少一些東西,但似乎無法弄清楚。
任何幫助絕對讚賞!
所以我有2種形式:C#的WinForms - 在Form2按鈕,隱藏Form1中
有Form2上的按鈕時,我想有單擊時隱藏Form1。在窗體2
var mainFrm = new Form1();
mainFrm.Hide();
按鈕單擊按鈕,從這個什麼都不做。我顯然缺少一些東西,但似乎無法弄清楚。
任何幫助絕對讚賞!
如果form1已經存在於頁面中,那麼爲什麼還需要重新初始化它?只需將可見狀態設置爲false即可隱藏它。
mainFrm.Visible = false;
沒有看到更多的是很難回答的代碼,但你絕對需要引用舊Form1
這已經是可見的,隱藏它。您正在創建一個新表單並隱藏它。
您必須定義您的Form2類來存儲對主窗體的引用。
public partial class Form2 : Form
{
/* reference to the main form will be stored here */
private Form1 _mainForm;
public Form2(Form1 mainForm)
{
InitializeComponent();
/* Initialize the main form field */
this._mainForm = mainForm;
}
private void button1_Click(object sender, EventArgs e)
{
/* Set the main form visibility to false */
_mainForm.Visible = false;
}
}
現在,當您創建的窗體2的實例就是主要形式添加到構造:
/* Show the form2 */
_form2 = new Form2(this);
_form2.Show();
注:這將指創建窗體2物體的形式。
您可以在Form1中創建一個靜態表單類型屬性,並在Form1顯示時對其進行設置,然後用它來隱藏表單 以下代碼適用於我。
private void button1_Click(object sender, EventArgs e)
{
var objForm1 = new Form1();
Form1.Fom1ref = objForm1;
objForm1.Show();
}
private void button2_Click(object sender, EventArgs e)
{
Form1.Fom1ref.Hide();
}
這裏是應該在Form1中設置的屬性。
public static Form Fom1ref { get; set; }
爲什麼要創建Form1的新實例var mainFrm = new Form1();'?如果您的意圖是隱藏已經顯示的Form1,那麼您需要獲取已經存在的表單的句柄並調用Hide()。 – GER