Application Класс

Определение

Предоставляет методы и свойства static для управления приложением, например методы для запуска и остановки приложения, для обработки сообщений Windows и свойства для получения сведений о приложении. Этот класс не наследуется.

public ref class Application sealed
public sealed class Application
type Application = class
Public NotInheritable Class Application
Наследование
Application

Примеры

В следующем примере кода перечислены числа в списке в форме. Каждый раз, когда вы щелкаете button1, приложение добавляет в список еще одно число.

Метод Main вызывает Run для запуска приложения, которое создает форму, listBox1 и button1. Когда пользователь щелкает button1, button1_Click метод отображает MessageBox. Если пользователь щелкает NoMessageBox, button1_Click метод добавляет число в список. Если пользователь щелкает Yes, приложение вызывает Exit , чтобы обработать все оставшиеся сообщения в очереди, а затем выйти.

Примечание

Вызов завершится ошибкой Exit при частичном доверии.

public ref class Form1: public System::Windows::Forms::Form
{
private:
   Button^ button1;
   ListBox^ listBox1;

public:
   Form1()
   {
      button1 = gcnew Button;
      button1->Left = 200;
      button1->Text =  "Exit";
      button1->Click += gcnew EventHandler( this, &Form1::button1_Click );
      listBox1 = gcnew ListBox;
      this->Controls->Add( button1 );
      this->Controls->Add( listBox1 );
   }

private:
   void Form1::button1_Click( Object^ /*sender*/, EventArgs^ /*e*/ )
   {
      int count = 1;
      
      // Check to see whether the user wants to exit 
      // the application. If not, add a number to the list box.
      while ( MessageBox::Show(  "Exit application?",  "", MessageBoxButtons::YesNo ) == ::DialogResult::No )
      {
         listBox1->Items->Add( count );
         count += 1;
      }

      
      // The user wants to exit the application. 
      // Close everything down.
      Application::Exit();
   }

};

int main()
{
   
   // Starts the application.
   Application::Run( gcnew Form1 );
}
public class Form1 : Form
{
    [STAThread]
    public static void Main()
    {
        // Start the application.
        Application.Run(new Form1());
    }

    private Button button1;
    private ListBox listBox1;

    public Form1()
    {
        button1 = new Button();
        button1.Left = 200;
        button1.Text = "Exit";
        button1.Click += new EventHandler(button1_Click);

        listBox1 = new ListBox();
        this.Controls.Add(button1);
        this.Controls.Add(listBox1);
    }

    private void button1_Click(object sender, System.EventArgs e)
    {
        int count = 1;
        // Check to see whether the user wants to exit the application.
        // If not, add a number to the list box.
        while (MessageBox.Show("Exit application?", "",
            MessageBoxButtons.YesNo)==DialogResult.No)
        {
            listBox1.Items.Add(count);
            count += 1;
        }

        // The user wants to exit the application.
        // Close everything down.
        Application.Exit();
    }
}
Public Class Form1 
    Inherits Form

    <STAThread()> _
     Shared Sub Main()
        ' Start the application.
        Application.Run(New Form1)
    End Sub

    Private WithEvents button1 As Button
    Private WithEvents listBox1 As ListBox

    Public Sub New()
        button1 = New Button
        button1.Left = 200
        button1.Text = "Exit"

        listBox1 = New ListBox
        Me.Controls.Add(button1)
        Me.Controls.Add(listBox1)
    End Sub

    Private Sub button1_Click(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles button1.Click
        Dim count As Integer = 1
        ' Check to see whether the user wants to exit the application.
        ' If not, add a number to the list box.
        While (MessageBox.Show("Exit application?", "", _
            MessageBoxButtons.YesNo) = DialogResult.No)

            listBox1.Items.Add(count)
            count += 1

        End While

        ' The user wants to exit the application. 
        ' Close everything down.
        Application.Exit()
    End Sub

End Class

Комментарии

Класс Application содержит методы для запуска и остановки приложений и потоков, а также для обработки сообщений Windows следующим образом:

  • Run запускает цикл сообщений приложения в текущем потоке и при необходимости делает форму видимой.

  • Exit или ExitThread останавливает цикл сообщений.

  • DoEvents обрабатывает сообщения, пока программа находится в цикле.

  • AddMessageFilter добавляет фильтр сообщений в насос сообщений приложения для мониторинга сообщений Windows.

  • IMessageFilter позволяет остановить вызов события или выполнить специальные операции перед вызовом обработчика событий.

Этот класс имеет CurrentCulture свойства и CurrentInputLanguage для получения или задания сведений о языке и региональных параметрах для текущего потока.

Невозможно создать экземпляр этого класса.

Свойства

AllowQuit

Получает значение, определяющее, может ли вызывающий объект выйти из этого приложения.

CommonAppDataPath

Получает путь для данных приложения, являющихся общими для всех пользователей.

CommonAppDataRegistry

Получает раздел реестра для данных приложения, являющихся общими для всех пользователей.

CompanyName

Возвращает название компании, сопоставленное с приложением.

CurrentCulture

Получает или задает данные о языке и региональных параметрах для текущего потока.

CurrentInputLanguage

Получает или задает текущий язык ввода для текущего потока.

ExecutablePath

Получает путь для исполняемого файла, запустившего приложение, включая исполняемое имя.

HighDpiMode

Возвращает текущий режим высокого DPI для данного приложения.

LocalUserAppDataPath

Получает путь для данных приложения локального неперемещающегося пользователя.

MessageLoop

Получает значение, указывающее, существует ли цикл обработки сообщений в данном потоке.

OpenForms

Получает коллекцию открытых форм, принадлежащих приложению.

ProductName

Получает название продукта, сопоставленного с данным приложением.

ProductVersion

Получает версию продукта, сопоставленную с данным приложением.

RenderWithVisualStyles

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

SafeTopLevelCaptionFormat

Получает или задает строку формата для использования в заголовках окон верхнего уровня, когда они отображаются с предупреждающим объявлением.

StartupPath

Получает путь для исполняемого файла, запустившего приложение, не включая исполняемое имя.

UserAppDataPath

Получает путь для данных приложения пользователя.

UserAppDataRegistry

Получает раздел реестра для данных приложения пользователя.

UseVisualStyles

Возвращает значение, указывающее, включены ли визуальные стили для приложения.

UseWaitCursor

Получает или задает значение, которое указывает, используется ли курсор ожидания для всех открытых форм приложения.

VisualStyleState

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

Методы

AddMessageFilter(IMessageFilter)

Добавляет фильтр сообщений для мониторинга сообщений Windows при их маршрутизации к местам назначения.

DoEvents()

Обрабатывает все сообщения Windows, которые в данный момент находятся в очереди сообщений.

EnableVisualStyles()

Включает визуальные стили для приложения.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Exit()

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

Exit(CancelEventArgs)

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

ExitThread()

Выходит из цикла обработки сообщений в текущем потоке и закрывает все окна в потоке.

FilterMessage(Message)

Запускает любые фильтры для сообщения окна и возвращает копию измененного сообщения.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
OleRequired()

Инициализирует OLE в текущем потоке.

OnThreadException(Exception)

Вызывает событие ThreadException.

RaiseIdle(EventArgs)

Вызывает событие Idle в размещенных скриптах.

RegisterMessageLoop(Application+MessageLoopCallback)

Регистрирует ответный вызов, чтобы проверить, выполняется ли цикл обработки сообщений в размещенных средах.

RemoveMessageFilter(IMessageFilter)

Удаляет фильтр сообщений из средства переноса сообщений приложения.

Restart()

Завершает работу приложения и немедленно запускает новый экземпляр.

Run()

Запускает стандартный цикл обработки сообщений приложения в текущем потоке, без формы.

Run(ApplicationContext)

Запускает стандартный цикл обработки сообщений приложения в текущем потоке с ApplicationContext.

Run(Form)

Запускает стандартный цикл обработки сообщений приложения в текущем потоке и делает указанную форму видимой.

SetCompatibleTextRenderingDefault(Boolean)

Задает значение по умолчанию для всего приложения для свойства, определенного UseCompatibleTextRendering в некоторых элементах управления.

SetDefaultFont(Font)

Задает значение по умолчанию Font для процесса.

SetHighDpiMode(HighDpiMode)

Задает режим высокого DPI процесса.

SetSuspendState(PowerState, Boolean, Boolean)

Приостанавливает работу системы или переводит ее в спящий режим или же запрашивает приостановку работы системы или перевод ее в спящий режим.

SetUnhandledExceptionMode(UnhandledExceptionMode)

Указывает, как приложение должно реагировать на необработанные исключения.

SetUnhandledExceptionMode(UnhandledExceptionMode, Boolean)

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

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
UnregisterMessageLoop()

Отменяет регистрацию ответного вызова цикла обработки сообщений, сделанного с помощью метода RegisterMessageLoop(Application+MessageLoopCallback).

События

ApplicationExit

Происходит при закрытии приложения.

EnterThreadModal

Происходит при переходе приложения в модальное состояние.

Idle

Происходит, когда приложение заканчивает обработку и собирается перейти в состояние простоя.

LeaveThreadModal

Возникает, когда приложение собирается выйти из модального состояния.

ThreadException

Происходит при выдаче неперехваченного исключения потока.

ThreadExit

Происходит при закрытии потока. Перед закрытием главного потока для приложения вызывается данное событие, за которым следует событие ApplicationExit.

Применяется к