2015-01-18 3 views
0

Когда я нажимаю переключатель или перемещаюсь по вкладкам, мой веб-браузер geckofx теряет фокус. Я могу вернуться к фокусу с помощью browser.Focus() он работает хорошо, но если есть, например, две вкладки 1tab и 2tab. На 2tab - мой веб-браузер. Когда я перехожу на tab1, мой браузер в tab2 освобождает фокус и браузер команд. Focus() не работает. Его действительно раздражает, что каждый раз, когда я делаю что-то на своем UI gecko, вы теряете фокус. Есть ли способ, каким образом я мог бы держать его ВСЕГДА в фокусе?Как всегда держать браузер в фокусе

Спасибо.

Редактировать: Я думал о том, что элементы пользовательского интерфейса не будут фокусироваться на них, поэтому браузер не потеряет фокус. enter link description here Нашел это, использовал этот класс, и он работает с кнопками. Я пытаюсь сделать это на вкладках.

+0

Вы попробовали ответ? – aliboy38

ответ

0

Это просто. Сначала добавьте этот код на Form_load:

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

Затем сделайте все остальные элементы управления TabStop свойство ложно. И на каждом контрольном щелчке события добавьте этот код: 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(); 
    } 
} 
+0

Я на самом деле пытался поставить .Focus(); везде. Когда мой браузер отключится, он снова включит фокус. То, что я хотел достичь, - никогда не сосредотачиваться на этом браузере. Я пробовал javascripts и пытался сделать все элементы пользовательского интерфейса неактивными, но это не сработало. Спасибо за помощь. – Edgar

+0

@Edgar См. Обновление. – aliboy38

+0

Да, спасибо. Так как я не мог найти другие способы сохранить браузер в фокусе, я считаю это ответом. Еще раз спасибо. – Edgar

Смежные вопросы