Форма надстройки Excel отправляет Excel в фоновый режим при закрытии формы - PullRequest
0 голосов
/ 15 сентября 2011

У меня есть надстройка Excel, которая открывает форму. Если пользователь заполняет некоторые значения и нажимает кнопку «Применить», значения правильно отправляются на базовый лист, и всплывающая форма закрывается. Однако, если пользователь нажимает «Отмена», появляется всплывающее окно с сообщением, подтверждающее, что пользователь хочет отменить. Нажатие «Да» вызывает закрытие всплывающей формы, но также отправляет Excel за ранее активным окном - очень похоже на нажатие Alt-Tab. Это не хорошо!

У кого-нибудь есть идеи о том, как держать Excel на вершине?

Спасибо!

Randy

Ответы [ 2 ]

0 голосов
/ 26 сентября 2011

Я искал все виды вариаций в ActiveWindow / ActiveView, но не смог найти ничего подходящего. Наконец, я обошел куст шелковицы, чтобы придумать:

        IntPtr excelWindow = excelWindow = SpreadsheetApplicationFactoryBase.TheExcelApp.ExcelWin32Window.Handle;
        Win32.SetActiveWindow(excelWindow);

Ужасно, но это работает. Фабрика - это небольшой класс, который создает / возвращает экземпляр Excel.

Я очень ценю вклад.

Randy

0 голосов
/ 15 сентября 2011

Вы можете поместить это сразу после окна сообщения ActiveWindow.ActivatePrevious И проверить с помощью

Debug.Print ActiveWindow.Caption
ActiveWindow.ActivatePrevious
Debug.Print ActiveWindow.Caption
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...