2016-07-07 2 views
0

У меня есть tabControl на моей форме в приложении Windows C#, которое имеет две вкладки. Я отключил tabIndex этого tabControl. На первой странице этого tabControl и webBrowser на второй странице этого tabControl есть текстовое поле. Я хочу, чтобы textBox имел первый индекс по умолчанию при загрузке формы. И это работает очень хорошо. Но когда я эта команда:Элементы управления теряют индекс, когда файл PDF загружается событием form_load в элементе управления webBrowser в C#

webBrowser1.Navigate(Directory.GetCurrentDirectory() + "\\help.pdf"); 

на событии Form_Load, текстовое поле не имеет индекса больше. Что мне делать?

ответ

1

управления .NET WebBrowser имеет два события, которые могут помочь вам:

  • OnNavigating
  • OnDocumentCompleted

Простейшая логика будет сохраняться, была ли или нет TextBox сосредоточены до навигацию и восстановление состояния фокусировки после завершения навигации.

private bool _bWasTextBox1Focused = false; 

    private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e) 
    { 
     _bWasTextBox1Focused = textBox1.Focused; 
    } 

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
     if (_bWasTextBox1Focused) textBox1.Focus(); 
    } 
+0

Да вы дать мне правильный ответ, но есть более простой способ: я сосредоточен только на textBox1 в WebBrowser DocumentComplete случае. Спасибо. – UserMat

0

я сосредоточен только на textBox1 в WebBrowser DocumentComplete события:

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    textBox1.Focus(); 
} 
Смежные вопросы