У меня есть свойство CanClose, которое обрабатывает вопрос "Сохранить измененный DOC?"и возвращает истину или ложь.Внутри этого свойства, если DOC был изменен, пользователя спрашивают, следует ли в любом случае закрыть, сохранить, а затем закрыть или прервать (не закрывать).Я помещаю это свойство в окно просмотра, и многие окна открываются в окне просмотра.Как понять, вызывается ли свойство окном наблюдения и, таким образом, пропустить диалог?
private bool CanClose
{
get
{
if(IsModified)
{
switch(MyMessageBox.AskYesNoCancelQuestion(this, "$ProgramModifiedQuestion", DialogResult.Yes))
{
case DialogResult.No:
return true;
case DialogResult.Yes:
_saveToolStripMenuItem.PerformClick();
return true;
default: // Cancel
return false;
}
}
else
return true;
}
}
Кстати, в этом случае я обошел проблему, просмотрев свойство IsModifiedв действительности это то, что меня интересует, но, поскольку такая ситуация может возникнуть и в других конкурсах, я бы хотел найти окончательное решение.