HOW TO:使啟始的 Windows Form 不可見
若要讓 Windows 架構應用程式的主表單在應用程式啟動時隱藏起來,就必須將應用程式的啟動邏輯移至不同的類別。 您不能只是將它的 Visible 屬性設為 false。
區分應用程式存留期 (Lifetime) 和表單存留期之後,即可讓表單成為可見 (和不可見),因為在您「關閉」用於應用程式啟動的類別時,應用程式就會結束。
注意事項 |
---|
由於在程式碼執行時,模組是不可見的,隨後的程序會包括一個將訊息方塊加入至啟動模組以說明應用程式正在執行的步驟。 |
若要將表單設定為開始時不可見
執行下列任一步驟:
在 Visual Basic 中,以滑鼠右鍵按一下專案,然後選擇 [加入模組],將模組加入至 Windows 架構應用程式。
在 Visual C# 中,建立新的類別。
在 Visual C++ 中,開啟 Windows 架構應用程式的 Form1.cpp。
如需建立 Windows 架構應用程式的詳細資訊,請參閱 HOW TO:建立新的 Windows Form 應用程式專案。
在模組或類別中,開發一個可當做專案之啟始物件的 Main 副程式。
下列程式碼範例示範了如何處理這種情形。
Sub Main() ' Instantiate a new instance of Form1. Dim f1 as New Form1() ' Display a messagebox. This shows the application is running, ' yet there is nothing shown to the user. This is the point at ' which you customize your form. System.Windows.Forms.MessageBox.Show( _ "The application is running now, but no forms have been shown.") ' Customize the form. f1.Text = "Running Form" ' Show the instance of the form modally. f1.ShowDialog() End Sub
// All methods must be contained in a class. // This class is added to the namespace containing the Form1 class. class MainApplication { public static void Main() { // Instantiate a new instance of Form1. Form1 f1 = new Form1(); // Display a messagebox. This shows the application // is running, yet there is nothing shown to the user. // This is the point at which you customize your form. System.Windows.Forms.MessageBox.Show("The application " + "is running now, but no forms have been shown."); // Customize the form. f1.Text = "Running Form"; // Show the instance of the form modally. f1.ShowDialog(); } }
// You can use this Mian method in the Program class (Program.jsl): public static void main(String[] args) { // Instantiate a new instance of Form1. Form1 f1 = new Form1(); // Display a messagebox. This shows the application // is running, yet there is nothing shown to the user. // This is the point at which you customize your form. System.Windows.Forms.MessageBox.Show("The application " + "is running now, but no forms have been shown."); // Customize the form. f1.set_Text("Running Form"); // Show the instance of the form modally. f1.ShowDialog(); }
void Main() { // Instantiate a new instance of Form1. Form1^ f1 = gcnew Form1(); // Display a messagebox. This shows the application // is running, yet there is nothing shown to the user. // This is the point at which you customize your form. System::Windows::Forms::MessageBox::Show( "The application is running now, " "but no forms have been shown."); // Customize the form. f1->Text = "Running Form"; // Show the instance of the form modally. f1->ShowDialog(); }
注意事項 先前程式碼範例中的訊息方塊是用完整限定命名空間指定的,因為我們所建立的模組與標準的 Windows Form 不同,它依預設是不匯入任何命名空間。 如需匯入命名空間的詳細資訊,請參閱參考和 Imports 陳述式 (Visual Basic)、using 指示詞 (C# 參考) (Visual C#) 或 using Directive (C++) (Visual C++)。 Application.Run() 會啟動訊息幫浦,這對於某些應用程式的行為很重要,並且可以在應用程式生命週期的某些階段 (例如在關閉期間) 影響表單行為。 如需詳細資訊,請參閱 Application.Run 方法。
將專案的啟始物件由 Form1 更改為 Sub Main。
若為 Visual C#,請將啟始物件設定為前述程式碼範例中類別的名稱。 如需詳細資訊,請參閱 HOW TO:選擇 Windows 應用程式中的啟動表單,以及 HOW TO:變更應用程式的啟始物件 (Visual Basic)。
注意事項 如果是 Visual C++ 中的 Windows 架構應用程式,請略過這個步驟。
按 F5 執行專案。
當應用程式執行時, Main() 中的程式碼會先執行,而 Form1 的執行個體會延遲、隱藏直到程式碼顯示它在執行為止。 這可讓您在使用者不知情的情況下,在背景的 Form1 執行個體內執行任何作業。
請參閱
工作
HOW TO:顯示強制回應和非強制回應的 Windows Form