다음을 통해 공유


방법: ShowDialog 메서드로 Windows Form을 표시하여 COM Interop 지원

업데이트: 2007년 11월

Application.Run 메서드를 사용하여 만들 수 있는 .NET Framework 메시지 루프에 Windows Form을 표시하여 COM(Component Object Model) 상호 운용성 문제를 해결할 수 있습니다.

폼이 COM 클라이언트 응용 프로그램에서 제대로 동작하도록 하려면 폼을 Windows Forms 메시지 루프에서 실행해야 합니다. 이렇게 하려면 아래와 같은 방법을 사용합니다.

절차

모든 방법 중 Form.ShowDialog 메서드를 사용하는 방법은 최소한의 코드만 구현해도 되므로 .NET Framework 메시지 루프에 폼을 표시하는 가장 쉬운 방법이 될 수 있습니다.

Form.ShowDialog 메서드는 관리되지 않는 응용 프로그램의 메시지 루프를 일시 중지하고 폼을 대화 상자로 표시합니다. 호스트 응용 프로그램의 메시지 루프가 일시 중지되었으므로 Form.ShowDialog 메서드가 새 .NET Framework 메시지 루프를 만들어 폼의 메시지를 처리합니다.

Form.ShowDialog 메서드 사용 시 단점은 폼이 모달 대화 상자로 열린다는 점입니다. 이 동작은 Windows Form이 열려 있는 동안 호출 응용 프로그램에서 모든 UI(사용자 인터페이스)를 차단합니다. 사용자가 폼을 끝내면 .NET Framework 메시지 루프가 닫히고 이전 응용 프로그램의 메시지 루프가 다시 실행됩니다.

폼을 표시하는 메서드가 포함된 Windows Forms에 클래스 라이브러리를 만든 다음 COM interop에 대해 해당 클래스 라이브러리를 빌드할 수 있습니다. Visual Basic 6.0 또는 MFC(Microsoft Foundation Classes)에서 이 DLL 파일을 사용할 수 있으며 이러한 환경 중 하나에서 Form.ShowDialog 메서드를 호출하여 폼을 표시할 수 있습니다.

ShowDialog 메서드로 Winodws Form을 표시하여 COM interop을 지원하려면

  • Form.Show 메서드에 대한 모든 호출을 .NET Framework 구성 요소의 Form.ShowDialog 메서드에 대한 호출로 바꿉니다.

참고 항목

작업

방법: 각 Windows Form을 별개의 스레드에서 표시하여 COM Interop 지원

방법: 공유 스레드에서 Windows Forms을 표시하여 COM Interop 지원

개념

.NET Framework 구성 요소를 COM에 노출

기타 리소스

Windows Forms 및 관리되지 않는 응용 프로그램