如何始终保持浏览器焦点

How to always keep browser on focus

当我单击单选按钮或浏览选项卡时,我的 geckofx 网络浏览器失去了焦点。我可以通过使用 browser.Focus() 重新集中注意力,它运行良好,但如果有两个选项卡 1tab 和 2tab。在 2tab 上是我的网络浏览器。当我转到 tab1 时,我在 tab2 中的浏览器失去焦点并且命令 browser.Focus() 将无法工作。每次我在我的 UI gecko 上做一些事情时,这真的很烦人。有什么方法可以让我始终保持专注?

谢谢。

编辑: 我考虑过让 UI 元素不关注它们,这样浏览器就不会失去焦点。 enter link description here 找到了这个,使用了那个 class 并且它适用于按钮。我会尝试在选项卡上执行此操作。

很简单。首先在 Form_load 上添加此代码:

private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.TabIndex = 0;
            webBrowser1.Focus();
        }

然后将所有其他控件的 Tabstop 属性 设置为 false。并在每个控件单击事件上添加此代码:webBrowser1.Focus();

例如,我将此代码用于 Button 和 RadioButton。

private void radioButton1_Click(object sender, EventArgs e)
    {
        radioButton1.TabStop = false;
        webBrowser1.Focus();
        webBrowser1.LostFocus += webBrowser1_LostFocus;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        button1.TabStop = false;
        webBrowser1.Focus();
        webBrowser1.LostFocus += webBrowser1_LostFocus;
    }

对表单中的所有其他控件执行此操作。您还需要为此定义 webBrowser1_LostFocus void。

void webBrowser1_LostFocus(object sender, EventArgs e)
    {
        webBrowser1.Focus();
    }

更新:你也可以为焦点做一个空白。然后在任何你想要的地方使用这个虚空。试试这个:

public void SetFocus(Control webbrowser)
{
 // Set focus to the control. 
   if(webbrowser.CanFocus)
   {
      webbrowser.Focus();
   }
}