【问题标题】:How to always keep browser on focus如何始终保持浏览器焦点
【发布时间】:2015-02-01 22:14:14
【问题描述】:

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

谢谢。

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

【问题讨论】:

  • 你试过答案了吗?

标签: c# geckofx


【解决方案1】:

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

【讨论】:

  • 我实际上试过把 .Focus();到处。当我的浏览器失去焦点时,它会再次快速打开焦点。我想要实现的是永远不要放松对那个浏览器的关注。我尝试了 javascripts 并试图使所有 UI 元素都没有焦点,但没有奏效。谢谢你的帮助。
  • 是的,谢谢。由于我找不到任何其他方法来使浏览器保持焦点,我将其标记为答案。再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2015-08-11
  • 1970-01-01
  • 2010-09-20
  • 2019-08-09
  • 1970-01-01
相关资源
最近更新 更多