2016-09-19 102 views
0

我想用TreeView節點的WebBrowser控件打開表單。每個節點應該打開相同的表單,但WebBrowser控件的URL路徑不同。這是我試過的:點擊treeview節點打開Webbrowser表格

Private Sub TreeView1_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles TreeView1.AfterSelect 

'Define new page in Tab control and Webrowser form, which opens in It 
    Dim New_Page As New TabPage() 
    Dim WB As New Web_Form 

    WB.TopLevel = False 
    WB.Dock = DockStyle.Fill 
    WB.FormBorderStyle = FormBorderStyle.None 

    'Select case for treenode clicks 
    Select Case TreeView1.SelectedNode.Name 
     Case Is = "Node1" 
      'If Web_Form is opened, don't open new one, just focus to It instead 
      If Application.OpenForms().OfType(Of Web_Form).Any Then 
       For Each page As TabPage In TabControl1.TabPages 
        If page.Text = "Pictures" Then 
         TabControl1.SelectedTab = page 
        End If 
       Next page 
      'And If It's not opened, then open It in Tab control with setting focus on It 
      Else 
      New_Page.Controls.Add(WB) 
      New_Page.Text = "Pictures" 
      TabControl1.TabPages.Add(New_Page) 
      WB.Show() 

      WB.WebBrowser1.Navigate("C:\Pictures") 
      TabControl1.SelectedTab = New_Page 
      End If 

     Case Is = "Node2" 
      If Application.OpenForms().OfType(Of Web_Form).Any Then 
      For Each page As TabPage In TabControl1.TabPages 
       If page.Text = "Pictures" Then 
       TabControl1.SelectedTab = page 
       End If 
      Next page 

      Else 

       New_Page.Controls.Add(WB) 
       New_Page.Text = "Documents" 
       TabControl1.Visible = True 
       TabControl1.TabPages.Add(New_Page) 
       WB.Show() 

       WB.WebBrowser1.Navigate("C:\Documents") 
      TabControl1.SelectedTab = New_Page 
      End If 

     End Select 

    End Sub 

目前我的代碼只打開一次,無論點擊哪個節點,Webrowser的URL都是正確的。但之後它不想再打開另一個。有什麼建議麼 ?提前致謝 !

+0

我已經成功地打開窗體兩次不同的節點上,現在我的問題是,當我關閉某種形式的安迪嘗試從節點再次打開它,它沒有。事件僅被再次觸發如果我先點擊其他節點。點擊後如何刷新/重置節點? – LuckyLuke82

回答

0

已解決。如果有人會需要這個 - 代碼來填充Tabcontrol頁面以單擊Treeview節點上相同的形式。只有2個節點有點長,但可以根據需要縮短。隨意的什麼更好的建議:

Private Sub TreeView1_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick 

    'Define new page in Tab control and Webrowser form, which opens in It 
    Dim New_Page As New TabPage() 
    Dim WB As New Web_Form 
    WB.TopLevel = False 
    WB.Dock = DockStyle.Fill 
    WB.FormBorderStyle = FormBorderStyle.None 

    'If user clicks node 
    If e.Node.Name Is "Node1" Then 
     Dim counter As Integer = 0 
     'If Web_Form is opened, don't open new one, just focus to It instead 
      If Application.OpenForms().OfType(Of Web_Form).Any Then 
       For Each page As TabPage In TabControl1.TabPages 
        If page.Text = "Pictures" Then 
         TabControl1.SelectedTab = page 
         counter=1 
        End If 
       Next page 

        Select Case counter 
         Case 1 
          'Do nothing 
          Exit Sub 
         Case Else 
          'Create new Tabpage 
          New_Page.Controls.Add(WB) 
          New_Page.Text = "Pictures" 
          TabControl1.Visible = True 
          TabControl1.TabPages.Add(New_Page) 
          WB.Show() 
          WB.WebBrowser1.Navigate("C:\Pictures") 
          TabControl1.SelectedTab = New_Page 
        End Select 

       'And If It's not opened, then open It in Tab control with setting focus on It 
       Else 
       New_Page.Controls.Add(WB) 
       New_Page.Text = "Pictures" 
       TabControl1.TabPages.Add(New_Page) 
       WB.Show() 
       WB.WebBrowser1.Navigate("C:\Pictures") 
       TabControl1.SelectedTab = New_Page 
       End If 
    End if 

    If e.Node.Name Is "Node2" Then 
     Dim counter As Integer = 0 
      If Application.OpenForms().OfType(Of Web_Form).Any Then 
      For Each page As TabPage In TabControl1.TabPages 
       If page.Text = "Pictures" Then 
       TabControl1.SelectedTab = page 
       counter=1 
       End If 
      Next page 

       Select Case counter 
         Case 1 
          'Do nothing 
          Exit Sub 
         Case Else 
          'Create new Tabpage 
          New_Page.Controls.Add(WB) 
          New_Page.Text = "Documents" 
          TabControl1.Visible = True 
          TabControl1.TabPages.Add(New_Page) 
          WB.Show() 
          WB.WebBrowser1.Navigate("C:\Documents") 
          TabControl1.SelectedTab = New_Page 
       End Select 
      Else 
       New_Page.Controls.Add(WB) 
       New_Page.Text = "Documents" 
       TabControl1.Visible = True 
       TabControl1.TabPages.Add(New_Page) 
       WB.Show() 
       WB.WebBrowser1.Navigate("C:\Documents") 
      TabControl1.SelectedTab = New_Page 
      End If 

    End if 

End Sub