首页 > 解决方案 > CefSharp winforms 解决方案可能存在焦点问题

问题描述

使用 CfSharp Winforms 版本 73.1.130.0,我创建了一个非常简单的应用程序,它由一个带有浏览器控件的主窗体组成,然后生成新的窗体,每个窗体都有自己的浏览器控件。

主窗体指向一个网页,其中有一个简单的链接,单击该链接时会调用带有 URL 和窗口标识符的 ac# 方法,该 c# 方法使用 ChromeBrowser.RegisterAsyncJsObject 在应用程序中注册。该方法要么创建一个新表单(如果不存在具有相同标识符的表单),要么使用 BringToFront() 将带有标识符的表单置于最前面。

我们在一些机器上发现调用 BringToFront() 导致主窗体和弹出窗口争夺焦点,将 CPU 发送到 100%。如果我在弹出表单中禁用浏览器或将其隐藏,则不会出现问题。

就像我说的那样,它只在一些客户 PC 上,但我们可以在我们的 PC 上使用罗技组合键盘/触摸板重新创建它。

如果您需要一个示例应用程序,我可以提供一个,以及它导航到的网页。

我们认为我们可以通过禁用浏览器然后调用 BringToFront() 然后重新启用浏览器来绕过它,但这并不理想。

标签: winformscefsharp

解决方案


推荐阅读