アクションが実行される前に開始するイベント(DocumentSaving など)の大半をキャンセルできます(イベントがキャンセル可能かどうかを判断するには Cancellable プロパティを使用します)。たとえば、保存する前に、モデルが特定の基準を満たしてことを確認する必要がある場合があります。たとえば、DocumentSaving や DocumentSavingAs イベントに登録することで、ドキュメントの特定の基準を確認して[保存]や[名前を付けて保存]といったアクションをキャンセルできます。一度キャンセルすると、イベントのキャンセルを取り消すことはできません。
DocumentSavingAs イベントの次のイベント ハンドラは、ProjectInformation Status パラメータが空かどうかを確認し、空の場合は SaveAs イベントをキャンセルします。アプリケーションがイベントをキャンセルした場合は、アプリケーションからユーザへの説明が必要になるので注意してください。
コード領域 24-2: イベントをキャンセル |
private void CheckProjectStatusInitial(Object sender, DocumentSavingAsEventArgs args) { Document doc = args.Document; ProjectInfo proInfo = doc.ProjectInformation; // Project information is only available for project document. if (null != proInfo) { if (string.IsNullOrEmpty(proInfo.Status)) { // cancel the save as process. args.Cancel = true; MessageBox.Show("Status project parameter is not set. Save is aborted."); } } } |