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


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

Обновлен: Ноябрь 2007

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

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

754w18dd.alert_note(ru-ru,VS.90).gifПримечание.

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

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

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

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

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

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

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

  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();
    }
    
    754w18dd.alert_note(ru-ru,VS.90).gifПримечание.

    Окно сообщения в примере, представленном выше, определено 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).

    754w18dd.alert_note(ru-ru,VS.90).gifПримечание.

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

  4. Нажмите клавишу F5 для запуска проекта.

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

См. также

Задачи

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

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

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

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