如何始终保持浏览器的焦点

时间:2015-01-18 13:09:13

标签: c# geckofx

当我点击单选按钮或浏览标签时,我的geckofx网络浏览器松散焦点。我可以通过使用browser.Focus()恢复焦点,它可以很好地工作,但如果有两个选项卡1tab和2tab。在2tab上是我的webbrowser。当我去tab1我的浏览器在tab2松散焦点和命令browser.Focus()不会工作。每次我在UI壁虎松散焦点上做一些东西时,真的很烦人。有什么方法可以让它始终保持专注?

感谢。

编辑: 我认为让UI元素不要专注于它们,所以浏览器不会失去它的焦点。 enter link description here 发现这个,使用该类,它适用于按钮。我会尝试在标签上执行此操作。

1 个答案:

答案 0 :(得分:0)

这很简单。首先在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();
   }
}