다음을 통해 공유


Visual Basic 애플리케이션 모델 확장

WindowsFormsApplicationBase 클래스의 Overridable 멤버를 재정의하여 애플리케이션 모델에 기능을 추가할 수 있습니다. 이 방법을 사용하면 애플리케이션이 시작하고 종료할 때 애플리케이션 모델의 동작을 사용자 지정하고 사용자 고유의 메서드에 대한 호출을 추가할 수 있습니다.

애플리케이션 모델의 시각적 개요

이 섹션에서는 Visual Basic 애플리케이션 모델의 함수 호출 시퀀스를 시각적으로 표시합니다. 다음 섹션에서는 각 함수의 용도에 대해 자세히 설명합니다.

다음 그래픽은 일반적인 Visual Basic Windows Forms 애플리케이션의 애플리케이션 모델 호출 시퀀스를 보여 줍니다. 이 시퀀스는 Sub Main 프로시저가 Run 메서드를 호출할 때 시작됩니다.

Diagram showing the Application Model call sequence.

또한 Visual Basic 애플리케이션 모델은 StartupNextInstanceUnhandledException 이벤트도 제공합니다. 다음 그래픽에서는 이러한 이벤트를 발생시키는 메커니즘을 보여 줍니다.

Diagram showing the OnStartupNextInstance method raising the StartupNextInstance event.

Diagram showing the OnUnhandledException method raising the UnhandledException event.

기본 메서드 재정의

Run 메서드는 Application 메서드를 실행하는 순서를 정의합니다. 기본적으로 Windows Forms 애플리케이션에 대한 Sub Main 프로시저는 Run 메서드를 호출합니다.

애플리케이션이 일반적인 애플리케이션(다중 인스턴스 애플리케이션)이거나 단일 인스턴스 애플리케이션의 첫 번째 인스턴스인 경우 Run 메서드는 다음 순서로 Overridable 메서드를 실행합니다.

  1. OnInitialize. 기본적으로이 메서드 비주얼 스타일, 텍스트 표시 스타일 및 (애플리케이션에는 Windows 인증 사용) 하는 경우 기본 애플리케이션 스레드의 현재 보안 주체를 설정 및 호출 ShowSplashScreen 모두 /nosplash-nosplash 로 사용 되는 명령줄 인수입니다.

    이 함수가 False를 반환하는 경우 애플리케이션 시작 시퀀스가 취소됩니다. 이는 애플리케이션을 실행하지 않아야 하는 상황이 있는 경우에 유용할 수 있습니다.

    OnInitialize 메서드는 다음 메서드를 호출합니다.

    1. ShowSplashScreen. 애플리케이션에 시작 화면이 정의되어 있는지 여부를 확인하고, 시작 화면이 있는 경우 별도의 스레드에서 시작 화면을 표시합니다.

      ShowSplashScreen 메서드는 MinimumSplashScreenDisplayTime 속성으로 지정된 시간(밀리초) 이상 시작 화면을 표시하는 코드를 포함합니다. 이 기능을 사용하려면 프로젝트 디자이너(My.Application.MinimumSplashScreenDisplayTime 속성을 2초로 설정함)를 사용하여 애플리케이션에 시작 화면을 추가하거나 OnInitialize 또는 OnCreateSplashScreen 메서드를 재정의하는 메서드에서 My.Application.MinimumSplashScreenDisplayTime 속성을 설정해야 합니다. 자세한 내용은 MinimumSplashScreenDisplayTime를 참조하세요.

    2. OnCreateSplashScreen. 디자이너가 시작 화면을 초기화하는 코드를 내보낼 수 있도록 합니다.

      기본적으로 이 메서드는 아무것도 수행하지 않습니다. Visual Basic에서 애플리케이션에 대 한 시작 화면을 선택 하면 프로젝트 디자이너, 디자이너 재정의 합니다 OnCreateSplashScreen 설정 하는 메서드를 사용 하 여 메서드를 SplashScreen 시작 화면 폼의 새 인스턴스 속성 .

  2. OnStartup. Startup 이벤트를 발생시키는 확장성 지점을 제공합니다. 이 함수가 False를 반환하는 경우 애플리케이션 시작 시퀀스가 중지합니다.

    기본적으로 이 메서드는 Startup 이벤트를 발생시킵니다. 이벤트 처리기가 이벤트 인수의 Cancel 속성을 True로 설정하면 이 메서드는 False를 반환하여 애플리케이션 시작을 취소합니다.

  3. OnRun. 초기화가 완료된 후 기본 애플리케이션 실행을 시작할 준비가 되면 시작 지점을 제공합니다.

    기본적으로 Windows Forms 메시지 루프에 들어가기 전에이 메서드를 호출 합니다 OnCreateMainForm (애플리케이션의 기본 폼 만들려면) 및 HideSplashScreen (시작 화면 닫기)를 메서드:

    1. OnCreateMainForm. 디자이너가 기본 폼을 초기화하는 코드를 내보내는 방법을 제공합니다.

      기본적으로 이 메서드는 아무것도 수행하지 않습니다. 그러나 선택 하면 기본 폼에서 Visual Basic 애플리케이션에 대 한 프로젝트 디자이너, 디자이너 재정의 OnCreateMainForm 설정 하는 메서드를 사용 하 여 메서드를 MainForm 기본 폼의 새 인스턴스에 대 한 속성입니다.

    2. HideSplashScreen. 애플리케이션에 시작 화면이 정의되어 있으면 이 메서드는 시작 화면을 닫습니다.

      기본적으로 이 메서드는 시작 화면을 닫습니다.

  4. OnStartupNextInstance. 애플리케이션의 다른 인스턴스가 시작할 때 단일 인스턴스 애플리케이션이 동작하는 방식을 사용자 지정하는 방법을 제공합니다.

    기본적으로 이 메서드는 StartupNextInstance 이벤트를 발생시킵니다.

  5. OnShutdown. Shutdown 이벤트를 발생시키는 확장성 지점을 제공합니다. 이 메서드는 기본 애플리케이션에서 처리 되지 않은 예외가 발생할 경우 실행 되지 않습니다.

    기본적으로 이 메서드는 Shutdown 이벤트를 발생시킵니다.

  6. OnUnhandledException. 위에 나열된 메서드 중 하나에서 처리되지 않은 예외가 발생하는 경우 실행됩니다.

    기본적으로 이 메서드는 디버거가 연결되지 않고 애플리케이션이 UnhandledException 이벤트를 처리하는 동안 UnhandledException 이벤트를 발생시킵니다.

애플리케이션이 단일 인스턴스 애플리케이션이고 애플리케이션이 이미 실행 중인 경우에는 애플리케이션의 후속 인스턴스가 애플리케이션의 원래 인스턴스에 대한 OnStartupNextInstance 메서드를 호출한 다음 종료됩니다.

OnStartupNextInstance(StartupNextInstanceEventArgs) 생성자는 UseCompatibleTextRendering 속성을 호출하여 애플리케이션의 폼에 사용할 텍스트 렌더링 엔진을 결정합니다. 기본적으로 UseCompatibleTextRendering 속성은 Visual Basic 2005 이상 버전의 기본값인 GDI 텍스트 렌더링 엔진을 사용해야 함을 나타내는 False를 반환합니다. UseCompatibleTextRendering 속성을 재정의하여 Visual Basic .NET 2002 및 Visual Basic .NET 2003의 기본값인 GDI + 텍스트 렌더링 엔진을 사용해야 함을 나타내는 True를 반환할 수 있습니다.

애플리케이션 구성

Visual Basic 애플리케이션 모델의 일부로 WindowsFormsApplicationBase 클래스는 애플리케이션을 구성하는 보호된 속성을 제공합니다. 이러한 속성은 구현 클래스의 생성자에서 설정해야 합니다.

기본 Windows Forms 프로젝트에서 프로젝트 디자이너는 디자이너 설정을 사용하여 속성을 설정하는 코드를 만듭니다. 속성은 애플리케이션이 시작할 때만 사용됩니다. 애플리케이션이 시작한 후 속성을 설정하면 아무런 영향을 주지 않습니다.

속성 결정 프로젝트 디자이너의 애플리케이션 창에서의 설정
IsSingleInstance 애플리케이션이 단일 인스턴스 애플리케이션 또는 다중 인스턴스 애플리케이션으로 실행되는지 여부. 단일 인스턴스 애플리케이션 작성 확인란
EnableVisualStyles 애플리케이션이 Windows XP와 일치하는 비주얼 스타일을 사용할지 여부. XP 비주얼 스타일 사용 확인란
SaveMySettingsOnExit 애플리케이션이 종료할 때 애플리케이션이 애플리케이션의 사용자 설정 변경 내용을 자동으로 저장하는지 여부. 종료할 때 My.Settings 저장 확인란
ShutdownStyle 애플리케이션이 종료되는 원인(예: 시작 폼이 닫힘 또는 마지막 폼이 닫힘). 종료 모드 목록

참고 항목