当我点击单选按钮或浏览标签时,我的geckofx网络浏览器松散焦点。我可以通过使用browser.Focus()恢复焦点,它可以很好地工作,但如果有两个选项卡1tab和2tab。在2tab上是我的webbrowser。当我去tab1我的浏览器在tab2松散焦点和命令browser.Focus()不会工作。每次我在UI壁虎松散焦点上做一些东西时,真的很烦人。有什么方法可以让它始终保持专注?
感谢。
编辑: 我认为让UI元素不要专注于它们,所以浏览器不会失去它的焦点。 enter link description here 发现这个,使用该类,它适用于按钮。我会尝试在标签上执行此操作。
答案 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();
}
}