Im folgenden Codebeispiel wird ein Handler für das BeforeClose-Ereignis dargestellt, das den Benutzer auffordert, Änderungen zu speichern oder nicht zu speichern oder den Schließvorgang abzubrechen, falls seit dem letzten Speichern der Arbeitsmappe Änderungen an dieser vorgenommen wurden. Falls der Benutzer Änderungen nicht speichert, wird die Saved-Eigenschaft der Arbeitsmappe auf true festgelegt, sodass Microsoft Office Excel den Benutzer nicht zum Speichern der Arbeitsmappe auffordert, wenn der Schließvorgang fortgesetzt wird. Falls der Benutzer den Schließvorgang abbricht, wird der Cancel-Parameter des WorkbookEvents_BeforeCloseEventHandler-Ereignishandlers auf true festgelegt, sodass Microsoft Office Excel die Arbeitsmappe nicht schließt.
|
Sub ThisWorkbook_BeforeClose(ByRef Cancel As Boolean) _
Handles Me.BeforeClose
If Not Me.Saved Then
Dim result As DialogResult = _
MessageBox.Show("Do you want to save the " & _
"changes you made to " & Me.Name & "?", _
"Example", MessageBoxButtons.YesNoCancel)
Select Case result
Case DialogResult.Yes
Me.Save()
Case DialogResult.Cancel
Cancel = True
' The following code ensures that the default Save File
' dialog is not displayed.
Case DialogResult.No
Me.Saved = True
End Select
End If
End Sub
|
|
private void WorkbookBeforeClose()
{
this.BeforeClose +=
new Excel.WorkbookEvents_BeforeCloseEventHandler(
ThisWorkbook_BeforeClose);
}
void ThisWorkbook_BeforeClose(ref bool Cancel)
{
if (!this.Saved)
{
DialogResult result = MessageBox.Show("Do you want to save the " +
"changes you made to " + this.Name + "?", "Example",
MessageBoxButtons.YesNoCancel);
switch (result)
{
case DialogResult.Yes:
this.Save();
break;
case DialogResult.Cancel:
Cancel = true;
break;
// The following code ensures that the default Save File
// dialog is not displayed.
case DialogResult.No:
this.Saved = true;
break;
}
}
}
|