Диалог Word, показанный программно, не реагирует на щелчки мышью - PullRequest
0 голосов
/ 14 января 2009

Следующий фрагмент кода показывает диалог Вставка таблицы :

Dialog d = WordApp.Dialogs[WdWordDialog.wdDialogTableInsertTable];
int result = d.Show(ref missing);
if (result == -1)  // if user pressed OK
{
    d.Execute();
}

Проблема в том, что диалоговое окно не отвечает на щелчки мышью. реагирует на ввод с клавиатуры .
Более того, если я нажимаю Alt + Tab (чтобы переключиться на другое запущенное приложение), а затем снова нажимаю Alt + Tab (чтобы переключиться обратно на мое приложение), он реагирует на и ввод мыши и клавиатуры.

Я предполагаю, что мое приложение не «знает», что было показано диалоговое окно (потому что это не происходит обычным Form.ShownDialog ), и оно сохраняет фокус.

Как я могу решить эту проблему?

1 Ответ

1 голос
/ 14 января 2009

Я разобрался.

Я не совсем уверен, почему, но это помогает: до отображения диалогового окна I отключение главной формы приложения, затем после отображения диалогов включить назад.

Dialog d = WordApp.Dialogs[WdWordDialog.wdDialogTableInsertTable];

MainApplicationFormInstance.Enabled = false;
int result = d.Display(ref missing);
MainApplicationFormInstance.Enabled = true;

if (result == -1)  // user pressed OK
{
    d.Execute();
}
...