首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击treeview nodes打开Webbrowser表单

单击treeview nodes打开Webbrowser表单
EN

Stack Overflow用户
提问于 2016-09-19 20:47:32
回答 1查看 365关注 0票数 0

我想从树视图节点打开带有WebBrowser控件的表单。每个节点应打开相同的表单,但WebBrowser控件的URL路径不同。这是我尝试过的:

代码语言:javascript
复制
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都是正确的。但它不想再开另一家了。有什么建议吗?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-20 15:30:28

解决了。如果任何人需要此代码,则可以通过单击Treeview节点来填充具有相同表单的Tabcontrol页面。对于两个节点来说有点长,但根据您的需要可以缩短。如果有任何更好的建议,请随时提出:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39573586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档