WinForms控件在尝试5-15次后才获得单击

WinForms控件在尝试5-15次后才获得单击,winforms,ms-word,devexpress,office-interop,Winforms,Ms Word,Devexpress,Office Interop,这真的很难,因为任何简单的例子都能奏效。此外,如果在拖放过程中没有调用,我们的复杂对话框也可以正常工作。因此,只有在大型复杂用例中,我们才会遇到这个问题 我们有一个对话框,其中有一个DevExpress网格视图,如下所示。这是我们Office AddIn COM API的一部分,而不是VSTO。如果我们在用户单击菜单按钮时打开该对话框,则效果良好。但我们的用例是用户从我们的加载项中的表单拖放到Word文档中 然后,我们弹出对话框表单,供用户选择要删除的列。所以我们处于这种情况下的拖累。 错误:W

这真的很难,因为任何简单的例子都能奏效。此外,如果在拖放过程中没有调用,我们的复杂对话框也可以正常工作。因此,只有在大型复杂用例中,我们才会遇到这个问题

我们有一个对话框,其中有一个DevExpress网格视图,如下所示。这是我们Office AddIn COM API的一部分,而不是VSTO。如果我们在用户单击菜单按钮时打开该对话框,则效果良好。但我们的用例是用户从我们的加载项中的表单拖放到Word文档中

然后,我们弹出对话框表单,供用户选择要删除的列。所以我们处于这种情况下的拖累。

错误:Windows 10上的Word 365在Excel和PowerPoint上没有问题;在旧版本的Office上没有问题,您需要在对话框中单击5-10次,然后再单击复选框。此外,通过编程调用来选择网格中的单元格也无济于事

我不认为这个问题是DevExpress,因为这个对话框在拖放用例之外工作得很好。一旦点击足够多,它就可以正常工作。第一次单击时,小铅笔出现在左侧。单击成功后,铅笔会消失,然后该行被标记为选中

我认为需要做一些事情来让消息队列正常工作,转到正确的控件,等等。我尝试了编程调用来选择控件、网格视图中的单元格、选中和取消选中复选框等等。这些都不起作用

我在这里发帖,希望其他人也找到了类似的东西,并找到了一系列的调用来让消息泵正常工作

-但这似乎不是他们的问题

我们在IDataObject.GetData方法中调用它。在该方法中,调用对话框的代码为:

using (DataBinSelectCols dlg = new DataBinSelectCols(root.Children))
{
    if (dlg.ShowDialog() == DialogResult.Cancel)
        return null;
    nodesToUse = dlg.SelectedNodes;
}

答案是这是Word中的一个设置。在选项中,选择如下所示:


是否使用中描述的透明窗口技术捕获拖放操作并在DragDrop处理程序中显示对话框?如果是这样,也许可以使用BeginInvoke来执行可能在处理程序中执行的dialog show命令。这样处理程序将完成,透明表单将处理对话框逻辑。在任何情况下,如果您演示基本的代码逻辑,都会有所帮助。@TnTinMn不,我们直接转到Word。我们是一个COM API,而不是在VSTO发布之前首先创建的VSTO应用程序。我将为问题添加一些代码。交叉发布地址:。对于交叉发帖礼仪,请阅读:@macropod我总是在一个论坛与另一个论坛之间发布答案。我只是在这里投票失败后才在MSDN论坛上发布——我想这意味着我不太可能在这里得到帮助。不管怎样,礼仪是适用的。