Событие AddIn Excel: Как отобразить диалоговое окно, спрашивающее пользователя, должна ли книга быть сохранена? - PullRequest
0 голосов
/ 02 июня 2018

Прежде чем пользователю будет разрешено сохранить книгу Excel, которая является «недействительной», я хотел бы сообщить ему, что ему удалось ее повредить, и дать ему возможность отказаться от всех изменений.

При нажатииНесколько раз нажав клавишу [TAB], я смог сгенерировать большую часть кода ниже:

using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace WithBeforeSave
{
  public partial class ThisAddIn
  {
    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        this.Application.WorkbookBeforeSave += new Excel.AppEvents_WorkbookBeforeSaveEventHandler(Application_WorkbookBeforeSave);
    }

    void Application_WorkbookBeforeSave(Excel.Workbook Wb, bool SaveAsUI, ref bool Cancel)
    {
        MessageBox.Show("How do I put the proper dialog here?");
    }

    private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
    {
    }
  }
}

Поэтому все, что мне нужно, это эквивалент C #:

В этом примере пользователю предлагается ответить «да» или «нет» перед сохранением книги.

TIA

1 Ответ

0 голосов
/ 02 июня 2018
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace WithBeforeSave
{
  public partial class ThisAddIn
  {
    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        this.Application.WorkbookBeforeSave += new Excel.AppEvents_WorkbookBeforeSaveEventHandler(Application_WorkbookBeforeSave);
    }

    void Application_WorkbookBeforeSave(Excel.Workbook Wb, bool SaveAsUI, ref bool Cancel)
    {
        if (DialogResult.No == MessageBox.Show("Are you sure you want to save the DEFECTIVE, INVALID workbook?", "Example", MessageBoxButtons.YesNo))
        {
            Cancel = true;
            MessageBox.Show("Save is canceled.");
        }
    }

    private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
    {
    }
  }
}

Вот и все.Я нашел ответ здесь:

В этом примере пользователю предлагается ответить «да» или «нет» перед сохранением любой книги.

...