2016-01-20 1 views
0

Я довольно новичок в vb.net, я знаю основы. У меня есть этот код для создания нескольких вкладок для каждого файла PDF, который есть внутри каталога на моем диске c:. Код также генерирует веб-браузер для каждой вкладки и присваивает правильный pdf каждому веб-браузеру. Некоторые pdf-файлы имеют ссылки на другие pdf-файлы. Когда я нажимаю на эти ссылки, PDF открывается внутри родительского pdf-браузера. Я создал кнопку для использования команды theweb.goback(), но ничего не делает. Я хотел бы просмотреть связанный pdf-файл, а затем вернуться назад и вернуться к основному pdf-файлу.Использование goback() с несколькими генерируемыми кодами веб-браузером сгенерированный код Вкладки

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 

ответ

-1

Вы определенно должны использовать другой браузер, чем предустановленный браузер .Net Framework, потому что это внутренний Internet Explorer.

Посмотрите на движок Google Chrome.

Проблема в вашем коде, что вы создаете класс глобальный экземпляр вашего веб-браузера, см

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 
+0

Пробовал. Не работает. –

0

Вы определили переменную theweb дважды, так что я удивлен, это даже компилирует.

Даже если это так, ссылка на theweb, которую вы используете, нажатием кнопки будет последним элементом управления веб-браузером, который вы создали.

Вам необходимо получить доступ к фактическому элементу управления браузера на текущей закладке и вызвать GoBack.

+0

Я вижу это сейчас. Я удалил переменную выше события Form_load. Как получить доступ к фактическому элементу управления браузером на текущей вкладке? Я искал и пробовал все, что в моих силах. –