Поделиться через


Практическое руководство. Скрытие начальной формы Windows Forms

Чтобы скрыть главную форму приложения Windows при запуске приложения, необходимо переместить логику запуска приложения в отдельный класс. Его свойству Visible нельзя просто присвоить значение false.

После разделения времени существования приложения и времени существования формы можно показать форму (и скрыть ее), потому что приложение закончит работу, когда "закроется" класс", используемый для запуска приложения.

Примечание

Так как при выполнении кода модуль скрыт, процедура, приведенная ниже, содержит этап добавления в модуль запуска окна сообщения, которое показывает, что приложение запущено.

Чтобы скрыть форму при запуске

  1. Выполните одно из следующих действий.

    1. В Visual Basic добавьте модуль в приложение Windows. Для этого щелкните проект правой кнопкой мыши и выберите команду Добавить модуль.

    2. В Visual C# создайте новый класс.

    3. В Visual C++ откройте файл Form1.cpp приложения Windows.

      Дополнительные сведения о создании приложения Windows см. в разделе Практическое руководство. Создание проекта приложения Windows Forms.

  2. В модуле или классе создайте подпрограмму 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();
    }
    

    Примечание

    Окно сообщения в примере, представленном выше, определено c помощью полного пространства имен, потому что созданный модуль, в отличие от стандартной формы Windows Forms, не импортирует по умолчанию какие-либо пространства имен.Дополнительные сведения об импорте пространств имен см. в разделе Ссылки и оператор Imports (Visual Basic), Директива using (Справочник по C#) (Visual C#) или using Directive (C++) (Visual C++).Application.Run() начнет загрузку сообщения, что необходимо для поведения некоторых приложений и может повлиять на поведение формы во время определенных этапов времени существования приложения, например при завершении работы.Дополнительные сведения см. в разделе Метод Application.Run.

  3. Измените объект запуска проекта: используйте Sub Main вместо Form1.

    Для Visual C# используйте в качестве имени объект запуска имя класса из предыдущего примера кода. Дополнительные сведения см. в разделах Практическое руководство. Выбор начальной формы в приложении Windows, и Практическое руководство. Изменение автоматически запускаемого объекта для приложения (Visual Basic).

    Примечание

    Пропустите этот шаг для приложений Windows в Visual C++.

  4. Чтобы запустить проект, нажмите клавишу F5.

    Когда приложение запущено, первым выполняется код в Main() , а экземпляр формы Form1 остается скрытым до тех пор, пока не выполнится код, отвечающий за отображение формы. Это позволяет выполнять любые действия в экземпляре Form1 в фоновом режиме без уведомления пользователя.

См. также

Задачи

Практическое руководство. Отображение модальных и немодальных форм Windows Forms

Практическое руководство. Установка расположения форм Windows Forms на экране

Другие ресурсы

Изменение внешнего вида Windows Forms