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. Если пользователь щелкает No элемент MessageBox, button1_Click метод добавляет число в список. Если пользователь щелкает Yes, приложение вызывает Exit обработку всех оставшихся сообщений в очереди, а затем выйти.

Note

Вызов 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

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

LocalUserAppDataPath

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

MessageLoop

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

OpenForms

Возвращает коллекцию открытых форм, принадлежащих приложению.

ProductName

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

ProductVersion

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

RenderWithVisualStyles

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

SafeTopLevelCaptionFormat

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

StartupPath

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

UserAppDataPath

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

UserAppDataRegistry

Возвращает раздел реестра для данных приложения пользователя.

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 для определенных элементов управления.

SetSuspendState(PowerState, Boolean, Boolean)

Приостанавливает или гибернирует систему или запрашивает приостановку или спячку системы.

SetUnhandledExceptionMode(UnhandledExceptionMode, Boolean)

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

SetUnhandledExceptionMode(UnhandledExceptionMode)

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

ToString()

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

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

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

События

Имя Описание
ApplicationExit

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

EnterThreadModal

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

Idle

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

LeaveThreadModal

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

ThreadException

Возникает при возникновении необтравленного исключения потока.

ThreadExit

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

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