0

2 つのタブ ページを持つ C# Windows アプリケーションのフォームに tabControl があります。この tabControl の tabIndex を無効にしました。この tabControl の最初のページに textBox があり、この tabControl の 2 ページ目に webBrowser があります。フォームの読み込み時に、デフォルトで textBox に最初のインデックスが必要です。そして、これは非常にうまく機能しています。しかし、このコマンドを追加すると:

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

form_load イベントでは、textBox にはもうインデックスがありません。私は何をすべきか?

4

2 に答える 2

1

.NET WebBrowser コントロールには、次の 2 つのイベントが役立ちます。

  • 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();
    }
于 2016-07-07T18:06:00.507 に答える