繁体   English   中英

C#ChromiumWebBrowser:防止控制窃取焦点

[英]C# ChromiumWebBrowser: Prevent control from stealing focus

我正在制作一个程序,其中包含一个带有ChromiumWebBrowser的Form。 导航自动完成。 当webbrowser完成它的任务时,我将处理它,创建一个新的webbrowser,将其添加到表单,并加载一个新地址。

但是,当新的webbrowser被创建并添加到表单中时,程序会跳转到其他程序位于顶部的焦点之前。 示例:我启动程序,按下按钮开始其任务,打开记事本键入一些文本,导航到新站点时我的程序跳到它前面。

即使窗口最小化,它仍然会从其他打开的程序中窃取焦点。

如何防止它在创建后窃取焦点?

尝试禁用浏览器。 这将阻止控件接收键盘输入。 它不会“灰显”控件 - 它只是阻止与它进行交互。

Browser1 = New CefSharp.WinForms.ChromiumWebBrowser(url)
Browser1.Enabled = False
  1. 您的表格需要设置:this.Topmost = false; 并设置:this.BringToFront();

  2. 将新浏览器添加到表单中,就像下面的函数一样:

     private ChromiumWebBrowser AddNewBrowser(FATabStripItem tabStrip, String url) { if (url == "") { url = OpenUrl; txtUrl.Select(); txtUrl.Focus(); } else { tabStrip.Select(); tabStrip.Focus(); } // ... } 

希望对你有所帮助。 谢谢 !

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM