如何修复在 winform 应用程序中加载 dotnetbrowser 实例时不需要的焦点切换

How to fix unwanted focus switching on loading a dotnetbrowser instance in a winform app

问题

我有一个非常复杂的 winforms 应用程序,它偶尔会加载 DotNetBrowser 组件实例以在 UI 的一部分中呈现动态 Web 内容。 The primary navigation mechanism is a tree control and when a node of that tree is selected and that node has associated HTML content, then the DNB component is initialized and the content loaded.发生这种情况时,树会失去输入焦点。我还有其他组件以相同的方式动态加载到同一位置,并且这些组件不会窃取输入焦点。所以这似乎是 DotNetBrowser 组件所特有的。

我试过的

我已经尝试在 FinishedLoadingFrame 事件的基础浏览器视图组件上设置 Focused = false,但我怀疑此时为时已晚。

问题

我确实需要 DNB 组件在某个时候接收输入焦点,当用户点击它时,但我无法让它在实例化时或加载内容后获得焦点。 有办法做到这一点吗?

默认情况下,BrowserView 在布局上显示后获得焦点。 您可以使用 BrowserView.InitialFocusOwner 属性.

禁用此行为