我想要做什麼:
- >打開MDI形式
- >關閉該項目主要形式
- >不關閉應用
c# - 如何關閉主窗體而不讓應用程序關閉?
我做了什麼:
frmMain fm = new frmMain();
fm.Show();
this.Close()
任何幫助,將不勝感激! :)
我想要做什麼:
- >打開MDI形式
- >關閉該項目主要形式
- >不關閉應用
c# - 如何關閉主窗體而不讓應用程序關閉?
我做了什麼:
frmMain fm = new frmMain();
fm.Show();
this.Close()
任何幫助,將不勝感激! :)
如果你真的要關閉的主要形式,但離開了應用程序的運行,你可以讓你的默認類啓動應用程序上下文:
using(MyContext myContext = new MyContext())
{
Applicaton.Run(myContext);
}
其中MyContext
繼承自ApplicatonContext
。
您的應用程序上下文可以根據需要加載和關閉窗體。我在一個項目中執行此操作,我在上下文中啓動登錄表單。只有成功完成主表單纔會加載。我還允許通過終止主窗體並重新加載登錄表單來處理程序中的「註銷」。
編輯:從評論中,它可能是你正在尋找的是.Hide()。這不會導致您的表單卸載,並且調用.Show()會將其恢復(例如,您可以使用定時器或其他形式持有對主窗體的引用來進行調用)。我更喜歡使用ApplicationContext,因爲它負責將程序保存在遠離用戶可能嘗試關閉的UI元素的內存中。
您可以使用隱藏方法。
嘗試這樣做:
frmMain fm = new frmMain();
this.Hide();
fm.Show();
或者:
frmMain fm = new frmMain();
this.Hide();
fm.ShowDialog();
this.Show();
後者將打開的窗口,一旦被關閉,之前的窗口將再次出現。
謝謝你這個完美的工作,就像其他答案一樣簡單。謝謝! –
我所做的來解決這個問題是:
this.Hide()
大概沒有做到這一點的最好辦法,但依然。
你甚至可以把它找回來通過調用
this.Show()
我不明白!我不知道c#中的上下文!請你換一種方式? –
這不是複雜的事情嗎?在登錄窗口的例子中,您甚至可以在初始化組件之前打開對話框,甚至在初始化組件之前等等。我真的認爲他所要查找的只是'Hide()',但我很想聽聽爲什麼這是不夠的。 – SimpleVar
上下文只是用於管理項目表單的包裝器。如果您的項目默認類調用它,您可以啓動任何表單或從那裏運行任何後臺進程。請參閱:http://www.c-sharpcorner。com/UploadFile/johnconwell/ApplicationContexttoEncapsulateSplashScreenFunctionality11232005041406AM/ApplicationContexttoEncapsulateSplashScreenFunctionality.aspx爲其使用的示例。 – Godeke