以编程方式显示的Word对话框不响应鼠标单击

时间:2009-01-14 13:30:11

标签: c# interop ms-word ms-office

以下代码显示了插入表对话框:

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(切换回我的应用程序),它会响应 鼠标和键盘输入。< / p>

我的猜测是我的应用程序“不知道”显示了一个对话框(因为它不会以常规的 Form.ShownDialog 方式发生)而且它会保持焦点。< / p>

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我解决了。

我不确定为什么但这会有所帮助:显示对话框之前禁用主应用程序表单,然后 对话框显示我启用它。

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();
}