当 PDF 文件由 C# 中的 webBrowser 控件中的事件加载form_load控件时,控件会丢失索引

本文关键字:控件 load form 索引 加载 事件 文件 PDF 中的 webBrowser | 更新日期: 2023-09-27 17:56:05

我在 C# Windows 应用程序中的窗体上有一个选项卡控件,它有两个选项卡页。我禁用了此选项卡控件的选项卡索引。此选项卡控件的第一页上有一个文本框,此选项卡控件的第二页上有一个 Web 浏览器。我希望文本框在加载表单时默认具有第一个索引。这工作得很好。但是当我添加此命令时:

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

在 form_load 事件上,文本框不再具有索引。我该怎么办?

当 PDF 文件由 C# 中的 webBrowser 控件中的事件加载form_load控件时,控件会丢失索引

.NET WebBrowser 控件有两个可能对您有帮助的事件:

  • 导航
  • 文档已完成

最简单的逻辑是在导航之前保留文本框是否聚焦,并在导航完成后还原焦点状态。

    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();
    }

我只关注 webBrowser 文档中的 textBox1 完成事件:

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