C# 从模式对话框中的WindowsFormsHost控件引发异常。我怎么处理?
我正在WPF中制作一个自定义OPC客户端应用程序,以便与Kepware服务器通信。其中一个功能是配置标记,包括设置其主机和服务器。现在,我可以通过调用Kepware ClientAce API手动执行此操作,以搜索该主机上的有效网络主机和有效服务器,但ClientAce包含一个.dll,它已经提供了一个树控件,用户可以直接浏览。但是,此开箱即用控件在Windows窗体中 因此,我有一个WPF窗口,我使用ShowDialog()以模态对话框的形式启动它。此窗口中有一个WindowsFormsHost元素,其中包含上述服务器浏览控件。它在大多数情况下都工作得很好,包括在用户在树控件中进行新选择时提供要处理的事件。该事件有一个布尔参数,指示新选择是否为服务器。这是一件好事,因为这正是我在这里要关注的事情 它还提供了一个“服务器被双击”事件,我处理该事件并决定将其解释为用户选择所需服务器的快捷方式。(否则,他们必须为我根据上述选择事件存储的当前选定服务器单击单独的按钮。) 到目前为止一切都很好 ……但是!添加了另一个功能Kepware(实际上有一些,但我并不担心这些)。用户可以从上下文菜单中从树中删除服务器。出于某种原因,这会引发一个null异常(尽管它成功地从树中删除了服务器)。这对我来说是一件非常糟糕的事情,因为…:C# 从模式对话框中的WindowsFormsHost控件引发异常。我怎么处理?,c#,.net,wpf,C#,.net,Wpf,我正在WPF中制作一个自定义OPC客户端应用程序,以便与Kepware服务器通信。其中一个功能是配置标记,包括设置其主机和服务器。现在,我可以通过调用Kepware ClientAce API手动执行此操作,以搜索该主机上的有效网络主机和有效服务器,但ClientAce包含一个.dll,它已经提供了一个树控件,用户可以直接浏览。但是,此开箱即用控件在Windows窗体中 因此,我有一个WPF窗口,我使用ShowDialog()以模态对话框的形式启动它。此窗口中有一个WindowsFormsHos
是否有一种方法可以将鼠标事件传播到窗口类中的某个位置,或者将此异常捕获到窗口类中的某个位置,这样它就不会向上传播到调用方法中?您无法修复或修补此问题,它发生在非您的代码中,而不是由非您的代码调用的代码中。您需要联系供应商以获得支持。一定要有一个小的repro项目来演示这个问题,如果你像这里那样请求帮助,他们很可能会忽略你。难道没有一个选项也可以捕获非托管异常吗?Hans,我担心这将是我必须采取的路线。谢谢你让我知道我已经尽力了。幸运的是,这里的工程主管告诉我,我们确实与Kepware签订了技术支持协议,因此我不必通过我们的客户获得技术支持。我意识到我将不得不以不同的方式向他们寻求帮助。因为最终,我要求他们修复他们的产品。他们不需要知道我想做什么的任何细节。我可以在一个简单的WPF应用程序窗口上用一个控件重现这个问题。