繁体   English   中英

在代码生成的选项卡中将goback()与多个代码生成的网络浏览器一起使用

[英]Using goback() with multiple code generated webbrowser in code generated Tabs

我是vb.net的新手,我知道一些基础知识。 我有这段代码为c:驱动器上的目录中的每个pdf文件生成多个选项卡。 该代码还会为每个选项卡生成一个Web浏览器,并为每个Web浏览器分配正确的pdf。某些pdf具有指向其他pdf的链接。当我单击这些链接时,该pdf将在父pdf Web浏览器中打开。 我已经创建了一个使用theweb.goback()命令的按钮,但是它什么也没做。 我想查看链接的pdf,然后单击返回并返回到主要pdf。

Imports System.IO
Public Class Form1
    Dim theweb As New WebBrowser
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        For Each A As String In System.IO.Directory.GetFiles("N:\Drawing Office\Standards Appplication\PDF")
            Dim A2 As String = System.IO.Path.GetFileNameWithoutExtension(A)
            Dim myTabPage As New TabPage()
            myTabPage.Text = A2
            TabControl1.TabPages.Add(myTabPage)
            Dim theweb As New WebBrowser
            Dim Url As String = A
            theweb.GoHome()
            theweb.Parent = myTabPage
            theweb.Visible = True
            theweb.Dock = DockStyle.Fill
            theweb.Navigate(Url)
        Next

    End Sub



    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        theweb.GoBack()
    End Sub
End Class

我已经用以下代码更新了我的代码。 完美的作品。 唯一的问题是,当我单击“ Button1”时,即使我在第15个选项卡上都很忙,它也会刷新并自动返回第一个选项卡。

Imports System.IO
Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        For Each A As String In System.IO.Directory.GetFiles("N:\Drawing Office\Standards Appplication\PDF")
            Dim A2 As String = System.IO.Path.GetFileNameWithoutExtension(A)
            Dim myTabPage As New TabPage()
            myTabPage.Text = A2
            TabControl1.TabPages.Add(myTabPage)
            Dim theweb As New WebBrowser
            Dim Url As String = A
            theweb.GoHome()
            theweb.Parent = myTabPage
            theweb.Visible = True
            theweb.Dock = DockStyle.Fill
            theweb.Navigate(Url)
        Next

    End Sub



    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        testIt()
    End Sub
    Private Sub testIt()
        TabControl1.TabPages.Clear()

        For Each A As String In System.IO.Directory.GetFiles("N:\Drawing Office\Standards Appplication\PDF")
            Dim A2 As String = System.IO.Path.GetFileNameWithoutExtension(A)
            Dim myTabPage As New TabPage()
            myTabPage.Text = A2
            TabControl1.TabPages.Add(myTabPage)
            Dim theweb As New WebBrowser
            Dim Url As String = A
            theweb.GoHome()
            theweb.Parent = myTabPage
            theweb.Visible = True
            theweb.Dock = DockStyle.Fill
            theweb.Navigate(Url)
        Next
    End Sub
End Class

您已经两次定义了变量theweb ,所以我对此编译感到惊讶。

即使这样做,在单击按钮时对您正在使用的theweb的引用也将是您创建的最后一个theweb浏览器控件。

您需要访问当前选项卡页面上的实际浏览器控件,然后在其上调用GoBack。

绝对应该使用与预安装的.Net Framework浏览器不同的浏览器,因为内部这是Internet Explorer。

看看Google Chrome引擎。

代码中的问题是,您创建了Web浏览器的类全局实例,请参见

Public Class Form1
Dim theweb As New WebBrowser

并且根本不使用此浏览器。 所以这行不通。 您有一个不使用的类全局实例。

尝试这个:

Public Class Form1
Private Sub TestIt()
Dim theweb As New WebBrowser
    For Each file As String In Directory.GetFiles("N:\Drawing Office\Standards Appplication\PDF")
        Dim A2 As String = Path.GetFileNameWithoutExtension(file)

        Dim myTabPage As New TabPage()
        myTabPage.Text = A2
        TabControl1.TabPages.Add(myTabPage)

        With theweb
            .GoHome()
            .Parent = myTabPage
            .Visible = True
            .Dock = DockStyle.Fill
            .Navigate(file)
        End With

    Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    TestIt()
End Sub
End Class

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM