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 |
Получает значение, определяющее, может ли вызывающий объект выйти из этого приложения. |
| ColorMode |
Предоставляет методы и свойства |
| CommonAppDataPath |
Получает путь для данных приложения, являющихся общими для всех пользователей. |
| CommonAppDataRegistry |
Получает раздел реестра для данных приложения, являющихся общими для всех пользователей. |
| CompanyName |
Возвращает название компании, сопоставленное с приложением. |
| CurrentCulture |
Получает или задает данные о языке и региональных параметрах для текущего потока. |
| CurrentInputLanguage |
Получает или задает текущий язык ввода для текущего потока. |
| ExecutablePath |
Получает путь для исполняемого файла, запустившего приложение, включая исполняемое имя. |
| HighDpiMode |
Возвращает текущий режим высокого DPI для данного приложения. |
| IsDarkModeEnabled |
Предоставляет методы и свойства |
| LocalUserAppDataPath |
Получает путь для данных приложения локального неперемещающегося пользователя. |
| MessageLoop |
Получает значение, указывающее, существует ли цикл обработки сообщений в данном потоке. |
| OpenForms |
Получает коллекцию открытых форм, принадлежащих приложению. |
| ProductName |
Получает название продукта, сопоставленного с данным приложением. |
| ProductVersion |
Получает версию продукта, сопоставленную с данным приложением. |
| RenderWithVisualStyles |
Получает значение, указывающее, будет ли текущее приложение прорисовывать элементы управления с помощью визуальных стилей. |
| SafeTopLevelCaptionFormat |
Получает или задает строку формата для использования в заголовках окон верхнего уровня, когда они отображаются с предупреждающим объявлением. |
| StartupPath |
Получает путь для исполняемого файла, запустившего приложение, не включая исполняемое имя. |
| SystemColorMode |
Предоставляет методы и свойства |
| 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) |
Запускает стандартный цикл обработки сообщений приложения в текущем потоке и делает указанную форму видимой. |
| SetColorMode(SystemColorMode) |
Предоставляет методы и свойства |
| SetCompatibleTextRenderingDefault(Boolean) |
Задает значение по умолчанию для всего приложения для свойства, определенного |
| 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. |