2017-05-10 9 views
0

Add-in Express를 사용하여 빌드 된 Outllok에서 작업하고 있습니다. 이 대화 상자가 표시되어있는 동안 사용자가 여전히 Outlook을 사용할 수 있도록 현재 메일 작성기/편집기 창만 차단하는 모달 진행 대화 상자를 표시하려고하지만 현재 전자 메일을 편집 할 수 없어야합니다. 사용해 보았습니다.Outlook 전자 메일 편집기 사용 안 함

dialog.ShowDialog(new WindowWrapper(ADXAddinModule.CurrentInstance.GetOutlookWindowHandle(mail.GetInspector))); 

하지만 전체 Outlook이 차단되었습니다. WindowWrapperSystem.Windows.Forms.IWin32Window을 구현하는 간단한 클래스 일뿐입니다. 그 행동을 성취 할 수있는 방법이 있습니까?

답변

0

기본 제공 메커니즘이 없습니다. Outlook 창이 독립 실행 형 응용 프로그램이 아니기 때문에 대화 상자 창을 닫아야 다른 창으로 돌아갈 수 있습니다. 모두 단일 응용 프로그램 (MDI)을 나타냅니다.

해결 방법으로 Show 메서드 대신 Form 클래스를 사용할 수 있습니다. 이 경우 Outlook의 모든 창으로 포커스를 이동할 수 있습니다. 현재 메일 작성자/편집기 창 (소위 inspector) 만 차단하려면 사용자 동작의 결과 또는 프로그램 코드를 통해 관리자가 활성 창이 될 때 발생하는 Inspector 클래스의 Activate 이벤트를 처리 할 수 ​​있습니다. 따라서 이벤트 핸들에서 UI의 모든 변경을 방지하기 위해 창 양식을 앞으로 가져올 수 있습니다.

+0

감사합니다. 나는 그것을 시도 할 것입니다. 또한 모달 대화 상자 이외의 sth 사용을 고려 중입니다. (예 : 진행 상황 등을 표시 할 수있는) 관리자에게 일종의 컨트롤/패널을 "삽입"할 수 있으며 동시에 관리자를 비활성화 할 수 있습니까? – andy250

+0

실제로 Activate 이벤트를 처리하는 방법을 자세히 설명 할 수 있습니까? MailItem의 인스턴스가 있는데 mailItem.GetInspector를 호출하고 COM 객체를 가져 오면 이벤트 핸들러를 첨부 할 수 없습니다. – andy250