2016-10-25 7 views
2

사무실 용 추가 기능을 작성하는 동안 DocumentBeforeSave 이벤트에 대한 이벤트 핸들러를 정의해야했습니다.저장이 해제되었을 때 발생하는 DocumentBeforeSaveEventHandler 이벤트

이 처리기는 한 가지 예외를 제외하고는 정상적으로 작동합니다. 이 예외는 다음에서 유래되었습니다.

  1. 나는 워드 문서를 열고 일부 텍스트를 편집합니다.
  2. 닫기 버튼을 클릭 해주십시오.
  3. Word에서 내가 묻는 메시지가 save, don't save 또는 cancel 인 경우 나에게 묻습니다.
  4. don't save을 선택합니다.

이 단계를 수행하면 Office에서 여전히 DocumentBeforeSave 이벤트가 발생합니다. 사용자가 저장을 취소할지 여부를 결정할 방법이 없습니다.

사용자가 저장할지 여부를 확인하는 방법이 있습니까? 그렇다면 어떻게해야합니까? 지금까지 MSDN 및 기타 소스가 비어 있습니다.

참고 : 최대 사무실 2013 년, 이것은 슬프게도이 기능은 당신이 실행하려는 귀하의 질문에 따라 가정 어떤에서 Office 2007 및 Office 2010

답변

1

에 존재하지 않는, Doc.IsInAutosave에 의해 확인되어야한다 문서가 실제로 인 경우에만 코드 일부가으로 저장됩니다.

DocumentBeforeSave 이벤트에 대한 이벤트 처리기를 등록하는 대신 실제 저장 명령을 가로 채는 것이 일반적 해결책입니다 (설명 된대로 실제 저장 작업이 수행되지 않는 경우에도 발생 함).

내 대답은 here에 설명되어 있습니다. 리본 XML에 사용자 지정 저장 명령을 정의한 다음 저장 중에 실행해야하는 코드를 해당 리본 콜백 함수에 배치해야합니다.

+0

귀하의 가정이 정확합니다. 문제가 해결되었습니다. 고맙습니다. 나는 이것이 가능하다는 것을 결코 알지 못했다. – creulcat

+0

일부 고의적 인 문제가 해결되었으므로이 방법은 문서를 닫고 변경 사항을 저장하고 싶은지 묻는 메시지를 표시하는 사용자 스토리를 포착하는 것 같지 않습니다. – creulcat

+1

@creulcat : 운이 좋다면 각각의 명령을 덮어 쓰면이 시나리오가 작동하게 될 것입니다 (예 :'FileClose','FileCloseAll','FileCloseOrExit','WindowClose' 또는 다른 것을 닫을 수있는 것과 비슷한 것) 문서). 가능한 모든 시나리오를 다루는 것은 간단하지 않을 것입니다 ... –