frmMain.vb
上传用户:szledliu
上传日期:2021-01-29
资源大小:13805k
文件大小:34k
源码类别:

C#编程

开发平台:

C#

  1. 'Working with the Visual Studio 2005 Browser control.
  2. 'Copyright 2007 - Thomas Maxwell.
  3. 'Example application showing working with the Webbrowser control in Visual Studio.
  4. 'You may freely distribute this code as long as you include credit to myself
  5. 'and to the author of the tab control (Eduardo Oliveira.)
  6. '// Ruler User control code can only be redistributed with the copyright 
  7. 'text intact.
  8. '//
  9. Imports System.IO
  10. Imports System.Runtime.InteropServices
  11. Imports System.Drawing
  12. Imports System.Text
  13. Public Class frmMain
  14. #Region " API "
  15.     'This is an API call to get the icon of a favorite.
  16.     Private Structure SHFILEINFO
  17.         Public hIcon As IntPtr            ' : icon
  18.         Public iIcon As Integer           ' : icondex
  19.         Public dwAttributes As Integer    ' : SFGAO_ flags
  20.         <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> _
  21.         Public szDisplayName As String
  22.         <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=80)> _
  23.         Public szTypeName As String
  24.     End Structure
  25.     Private Declare Auto Function SHGetFileInfo Lib "shell32.dll" _
  26.             (ByVal pszPath As String, _
  27.              ByVal dwFileAttributes As Integer, _
  28.              ByRef psfi As SHFILEINFO, _
  29.              ByVal cbFileInfo As Integer, _
  30.              ByVal uFlags As Integer) As IntPtr
  31.     Private Const SHGFI_ICON = &H100
  32.     Private Const SHGFI_SMALLICON = &H1
  33.     Private Const SHGFI_LARGEICON = &H0    ' Large icon
  34.     Private nIndex
  35. #End Region
  36.     Private CurSearchURL As String
  37.     Private CurSearchTitle
  38.     Private fitm As ToolStripMenuItem
  39. #Region " FORM "
  40.     Private Sub frmMain_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
  41.         If Not IsNothing(AppManager.CurrentBrowser) Then
  42.             AppManager.CurrentBrowser.Dispose()
  43.         End If
  44.         Dim oControl As Control
  45.         For Each oControl In Me.Controls
  46.             oControl.Dispose()
  47.         Next
  48.     End Sub
  49.     Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  50.         SkinEngine1.SkinFile = "MSN.ssk"
  51.         AppManager.MainForm = Me
  52.         Dim ofrm As New frmBrowser
  53.         Dim oTab As New Ie7Clone.TabPage(ofrm)
  54.         Me.tc1.TabPages.Add(oTab.Form)
  55.         'Set the 1st tab to non closeable, just like ie 7
  56.         tc1.TabPages(0).CloseButtonVisible = False
  57.         If AppManager.StartURL = "" Then
  58.             'Do we show the start page or have the browser go home?
  59.             If My.Settings.UseStartPage = True Then
  60.                 ofrm.wb.DocumentText = My.Resources.StartPage
  61.             Else
  62.                 ofrm.wb.GoHome()
  63.             End If
  64.         Else
  65.             ofrm.wb.Navigate(AppManager.StartURL)
  66.         End If
  67.         LoadFavorites()
  68.         LoadSearchProviders()
  69.     End Sub
  70.     Private Sub LoadHistory()
  71.         '
  72.     End Sub
  73. #End Region
  74. #Region " Favorites Loading Code "
  75.     'In most custom browser implementations you will probably want to 
  76.     'have your own favorite storage information, storing fav icons in your own cache
  77.     'or in a database. You may also want to implement a custom import / export wizard. 
  78.     'Since favorites are just text files simular to .ini files, for this example
  79.     'we'll just load them the quickest way by loading the path and during the 
  80.     'onclick in the handler open the file and direct the browser to the url. 
  81.     Private Sub LoadFavorites()
  82.         Dim Path As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)
  83.         tvFavs.BeginUpdate()
  84.         ' Clear the Favorites list
  85.         tvFavs.Nodes.Clear()
  86.         ' Load favorites from all sub-directories
  87.         LoadFolders(New System.IO.DirectoryInfo(Path), Nothing, Nothing)
  88.         ' Load the favorites from the favorites folder
  89.         LoadPath(Path, Nothing, Nothing)
  90.         'Now lets load the links toobar
  91.         'LoadLinkFolders(New System.IO.DirectoryInfo(Path & "Links"), Nothing)
  92.         ' LoadLinksPath(Path & "Links", Nothing)
  93.         ' Repaint the TreeView
  94.         tvFavs.EndUpdate()
  95.     End Sub
  96.     Private Sub LoadFolders(ByVal dirInfo As System.IO.DirectoryInfo, _
  97.     ByVal currentNode As TreeNode, ByVal oitm As ToolStripMenuItem)
  98.         Dim objNode As System.Windows.Forms.TreeNode
  99.         Dim fitm As ToolStripMenuItem
  100.         Dim objDir As System.IO.DirectoryInfo
  101.         For Each objDir In dirInfo.GetDirectories()
  102.             If currentNode Is Nothing Then
  103.                 objNode = tvFavs.Nodes.Add(objDir.Name, objDir.Name, 0, 1)
  104.                 objNode.Tag = String.Empty
  105.                 fitm = mnuFavs.DropDownItems.Add(objDir.Name)
  106.                 fitm.Image = My.Resources.folder3
  107.             Else
  108.                 objNode = currentNode.Nodes.Add(objDir.Name, objDir.Name, 0, 1)
  109.                 objNode.Tag = String.Empty
  110.                 fitm = oitm.DropDownItems.Add(objDir.Name)
  111.                 fitm.Image = My.Resources.folder3
  112.             End If
  113.             ' Set the full path of the folder
  114.             objNode.Tag = objDir.FullName
  115.             fitm.Tag = objDir.FullName
  116.             If objDir.GetDirectories().Length = 0 Then
  117.                 ' This node has no further sub-directories
  118.                 LoadPath(objDir.FullName, objNode, fitm)
  119.             Else
  120.                 ' Add this folder to the current node and continue
  121.                 ' processing sub-directories.
  122.                 LoadFolders(objDir, objNode, fitm)
  123.                 LoadPath(objDir.FullName, objNode, fitm)
  124.             End If
  125.         Next objDir
  126.     End Sub
  127.     Private Sub LoadPath(ByVal strPath As String, _
  128.     ByVal currentNode As TreeNode, ByVal mitm As ToolStripMenuItem)
  129.         Dim oNode As TreeNode
  130.         Dim oitm As ToolStripMenuItem
  131.         Dim name As String
  132.         Dim objDir As New System.IO.DirectoryInfo(strPath)
  133.         Dim SmallIco As IntPtr
  134.         Dim shinfo As SHFILEINFO
  135.         shinfo = New SHFILEINFO
  136.         ' Process each File in the path with a ".url" extension
  137.         Dim objFile As System.IO.FileInfo
  138.         For Each objFile In objDir.GetFiles("*.url")
  139.             oNode = New TreeNode
  140.             oitm = New ToolStripMenuItem
  141.             '///////////////////////////////////////////////////
  142.             'get the icon.
  143.             'Note:
  144.             'Here you could call the appmanager code to get the actual 
  145.             'favorite icon from the site (will slow things down)...
  146.             'If you decide to implement your own custom favorites
  147.             'grab the fav icon and store it in an access db, xml file etc
  148.             'either by path or ole object and save it locally.
  149.             shinfo.szDisplayName = New String(Chr(0), 260)
  150.             shinfo.szTypeName = New String(Chr(0), 80)
  151.             'Get the small icon.
  152.             SmallIco = SHGetFileInfo(objFile.FullName, 0, shinfo, _
  153.                         Marshal.SizeOf(shinfo), _
  154.                         SHGFI_ICON Or SHGFI_SMALLICON)
  155.             '////////////////////////////////////////////////////
  156.             ' Set the Text property to the "Friendly" name
  157.             name = Path.GetFileNameWithoutExtension(objFile.Name)
  158.             Dim oIcon As Icon = System.Drawing.Icon.FromHandle(shinfo.hIcon)
  159.             tvFavs.ImageList.Images.Add(name, oIcon.ToBitmap)
  160.             oNode.Text = name
  161.             oNode.Tag = objFile.FullName
  162.             oNode.ImageKey = name
  163.             oNode.SelectedImageKey = name
  164.             If currentNode Is Nothing Then
  165.                 tvFavs.Nodes.Add(oNode)
  166.                 oitm.Text = name
  167.                 oitm.Image = oIcon.ToBitmap
  168.                 oitm.Tag = objFile.FullName
  169.                 mnuFavs.DropDownItems.Add(oitm)
  170.                 AddHandler oitm.Click, AddressOf HandleFav
  171.                 'AddHandler oitm.MouseDown, AddressOf HandleFavMouseDown
  172.             Else
  173.                 currentNode.Nodes.Add(oNode)
  174.                 oitm.Text = name
  175.                 oitm.Image = oIcon.ToBitmap
  176.                 oitm.Tag = objFile.FullName
  177.                 mitm.DropDownItems.Add(oitm)
  178.                 AddHandler oitm.Click, AddressOf HandleFav
  179.                 'AddHandler oitm.MouseDown, AddressOf HandleFavMouseDown
  180.             End If
  181.         Next objFile
  182.     End Sub
  183.     Private Sub LoadLinkFolders(ByVal dirInfo As System.IO.DirectoryInfo, _
  184.     ByVal oitm As ToolStripMenuItem)
  185.         Dim fitm As ToolStripMenuItem
  186.         Dim objDir As System.IO.DirectoryInfo
  187.         For Each objDir In dirInfo.GetDirectories()
  188.             fitm = New ToolStripMenuItem
  189.             fitm.Text = objDir.Name
  190.             fitm.Tag = ""
  191.             fitm.Image = My.Resources.folder3
  192.             If oitm Is Nothing Then
  193.                 tbLinks.Items.Add(fitm)
  194.             Else
  195.                 fitm.Image = My.Resources.folder3
  196.                 oitm.DropDownItems.Add(fitm)
  197.             End If
  198.             If objDir.GetDirectories().Length = 0 Then
  199.                 ' This node has no further sub-directories
  200.                 LoadLinksPath(objDir.FullName, fitm)
  201.             Else
  202.                 ' Add this folder to the current node and continue
  203.                 ' processing sub-directories.
  204.                 'LoadLinkFolders(objDir, fitm)
  205.                 LoadLinksPath(objDir.FullName, fitm)
  206.             End If
  207.         Next objDir
  208.     End Sub
  209.     Private Sub LoadLinksPath(ByVal strPath As String, _
  210.     ByVal mitm As ToolStripMenuItem)
  211.         Dim oitm As ToolStripMenuItem
  212.         Dim name As String
  213.         Dim objDir As New System.IO.DirectoryInfo(strPath)
  214.         Dim SmallIco As IntPtr
  215.         Dim shinfo As SHFILEINFO
  216.         shinfo = New SHFILEINFO
  217.         ' Process each URL in the path (URL files end with a ".url" extension
  218.         Dim objFile As System.IO.FileInfo
  219.         For Each objFile In objDir.GetFiles("*.url")
  220.             oitm = New ToolStripMenuItem
  221.             'get the icon.
  222.             shinfo.szDisplayName = New String(Chr(0), 260)
  223.             shinfo.szTypeName = New String(Chr(0), 80)
  224.             'Get the small icon.
  225.             SmallIco = SHGetFileInfo(objFile.FullName, 0, shinfo, _
  226.                         Marshal.SizeOf(shinfo), _
  227.                         SHGFI_ICON Or SHGFI_SMALLICON)
  228.             ' Set the Text property to the "Friendly" name
  229.             name = Path.GetFileNameWithoutExtension(objFile.Name)
  230.             Dim oIcon As Icon = System.Drawing.Icon.FromHandle(shinfo.hIcon)
  231.             If mitm Is Nothing Then
  232.                 oitm.Text = name
  233.                 oitm.Image = oIcon.ToBitmap
  234.                 oitm.Tag = objFile.FullName
  235.                 tbLinks.Items.Add(oitm)
  236.                 'AddHandler oitm.Click, AddressOf HandleFav
  237.                 AddHandler oitm.MouseDown, AddressOf HandleFavMouseDown
  238.             Else
  239.                 oitm.Text = name
  240.                 oitm.Image = oIcon.ToBitmap
  241.                 oitm.Tag = objFile.FullName
  242.                 mitm.DropDownItems.Add(oitm)
  243.                 'AddHandler oitm.Click, AddressOf HandleFav
  244.                 AddHandler oitm.MouseDown, AddressOf HandleFavMouseDown
  245.             End If
  246.         Next objFile
  247.     End Sub
  248. #End Region
  249. #Region " Favorite Event Handlers "
  250.     Private Sub HandleFavMouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
  251.         Select Case e.Button
  252.             Case Windows.Forms.MouseButtons.Left
  253.                 Dim fi As ToolStripMenuItem = sender
  254.                 Dim obj As New tlxIni(fi.Tag)
  255.                 AppManager.CurrentBrowser.Navigate(obj.GetString("INTERNETSHORTCUT", "URL", String.Empty))
  256.             Case Windows.Forms.MouseButtons.Right
  257.                 cmFavs.Show(Cursor.Position.X, Cursor.Position.Y)
  258.                 fitm = sender
  259.         End Select
  260.     End Sub
  261.     Private Sub HandleFav(ByVal sender As System.Object, ByVal e As System.EventArgs)
  262.         Dim fi As ToolStripMenuItem = sender
  263.         Dim obj As New tlxIni(fi.Tag)
  264.         AppManager.CurrentBrowser.Navigate(obj.GetString("INTERNETSHORTCUT", "URL", String.Empty))
  265.     End Sub
  266.     Private Sub tvFavs_NodeMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles tvFavs.NodeMouseClick
  267.         If e.Node.Nodes.Count > 0 Then
  268.             e.Node.Expand()
  269.         Else
  270.             If e.Node.ImageIndex = 0 Then
  271.                 Exit Sub
  272.             Else
  273.                 Dim obj As New tlxIni(e.Node.Tag)
  274.                 AppManager.CurrentBrowser.Navigate(obj.GetString("INTERNETSHORTCUT", "URL", String.Empty))
  275.                 gbFavs.Visible = False
  276.             End If
  277.         End If
  278.     End Sub
  279. #End Region
  280. #Region " Search Providers / Search Routines "
  281.     'We'll make this public so we can call it from the add provider form
  282.     Public Sub LoadSearchProviders()
  283.         btnSearch.DropDownItems.Clear()
  284.         Dim strSQL As String = _
  285.         "Select ProviderTitle, ProviderURL, IsDefault FROM SearchProviders ORDER BY ProviderTitle"
  286.         Dim oConn As New OleDb.OleDbConnection(AppManager.ConnString)
  287.         Dim oDa As New OleDb.OleDbDataAdapter(strSQL, oConn)
  288.         Dim dt As New DataTable
  289.         Dim dr As DataRow
  290.         Dim oitm As ToolStripMenuItem
  291.         Try
  292.             oDa.Fill(dt)
  293.             For Each dr In dt.Rows
  294.                 oitm = New ToolStripMenuItem
  295.                 oitm.Tag = dr.Item("ProviderURL")
  296.                 If dr.Item("IsDefault") = True Then
  297.                     Dim oFC As New FontConverter
  298.                     oitm.Checked = True
  299.                     oitm.Text = dr.Item("ProviderTitle") & " (Default)"
  300.                     txtSearch.Text = dr.Item("ProviderTitle")
  301.                     oitm.Font = New Font(oitm.Font.Name, oitm.Font.Size, FontStyle.Bold, oitm.Font.Unit)
  302.                     Me.CurSearchURL = dr.Item("ProviderURL")
  303.                     Me.CurSearchTitle = dr.Item("ProviderTitle")
  304.                 Else
  305.                     oitm.Text = dr.Item("ProviderTitle")
  306.                 End If
  307.                 btnSearch.DropDownItems.Add(oitm)
  308.                 AddHandler oitm.Click, AddressOf HandleSearch
  309.             Next
  310.             Dim spcr As New ToolStripSeparator
  311.             btnSearch.DropDownItems.Add(spcr)
  312.             'Well just use microsoft's provider page, it would not take
  313.             'much to create our own custom page.
  314.             oitm = New ToolStripMenuItem
  315.             oitm.Text = "Find more providers"
  316.             oitm.Tag = "http://www.microsoft.com/windows/ie/searchguide/en-en/default.mspx#"
  317.             btnSearch.DropDownItems.Add(oitm)
  318.             AddHandler oitm.Click, AddressOf HandleSearch
  319.         Catch ex As Exception
  320.             MsgBox(ex.Message.ToString)
  321.         End Try
  322.     End Sub
  323.     Private Sub HandleSearch(ByVal sender As System.Object, ByVal e As System.EventArgs)
  324.         Dim oitm As ToolStripMenuItem = sender
  325.         If oitm.Text = "Find more providers" Then
  326.             AppManager.CurrentBrowser.Navigate(oitm.Tag)
  327.         Else
  328.             Me.CurSearchURL = oitm.Tag
  329.             txtSearch.Text = oitm.Text
  330.         End If
  331.     End Sub
  332.     Private Sub txtSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSearch.Click
  333.         txtSearch.Text = String.Empty
  334.     End Sub
  335.     Private Sub txtSearch_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtSearch.KeyDown
  336.         If e.KeyCode = Keys.Enter Then
  337.             DoSearch()
  338.         End If
  339.     End Sub
  340.     Private Sub DoSearch()
  341.         Dim sTerm As String = Me.CurSearchURL
  342.         sTerm = sTerm.Replace("{searchTerms}", txtSearch.Text)
  343.         AppManager.CurrentBrowser.Navigate(sTerm)
  344.     End Sub
  345.     Private Sub txtSearch_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtSearch.LostFocus
  346.         txtSearch.Text = Me.CurSearchTitle
  347.     End Sub
  348. #End Region
  349. #Region " Menus and toolbars "
  350.     Private Sub btnForward_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnForward.Click
  351.         If AppManager.CurrentBrowser.CanGoForward Then
  352.             AppManager.CurrentBrowser.GoForward()
  353.         End If
  354.     End Sub
  355.     Private Sub btnBack_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBack.Click
  356.         If AppManager.CurrentBrowser.CanGoBack Then
  357.             AppManager.CurrentBrowser.GoBack()
  358.         End If
  359.     End Sub
  360.     Private Sub btnRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRefresh.Click
  361.         AppManager.CurrentBrowser.Refresh()
  362.     End Sub
  363.     Private Sub btnStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStop.Click
  364.         AppManager.CurrentBrowser.Stop()
  365.     End Sub
  366.     Private Sub cboURL_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles cboURL.KeyDown
  367.         If e.KeyCode = Keys.Enter Then
  368.             If cboURL.Text <> "" Then
  369.                 AppManager.CurrentBrowser.Navigate(cboURL.Text)
  370.             End If
  371.         End If
  372.     End Sub
  373.     Private Sub btnForward_DropDownItemClicked(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs)
  374.         AppManager.Navigate(e.ClickedItem.Tag)
  375.     End Sub
  376.     Private Sub btnHome_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHome.Click
  377.         AppManager.CurrentBrowser.GoHome()
  378.     End Sub
  379.     Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click
  380.         AppManager.CurrentBrowser.Print()
  381.     End Sub
  382.     Private Sub btnPrintPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrintPreview.Click
  383.         AppManager.CurrentBrowser.ShowPrintPreviewDialog()
  384.     End Sub
  385.     Private Sub btnPageSetup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPageSetup.Click
  386.         AppManager.CurrentBrowser.ShowPageSetupDialog()
  387.     End Sub
  388.     Private Sub btnCut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCut.Click
  389.         AppManager.CurrentBrowser.Document.ExecCommand("Cut", False, System.DBNull.Value)
  390.     End Sub
  391.     Private Sub btnCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopy.Click
  392.         If Not IsNothing(AppManager.CurrentBrowser.Document) Then
  393.             AppManager.CurrentBrowser.Document.ExecCommand("Copy", False, System.DBNull.Value)
  394.         End If
  395.     End Sub
  396.     Private Sub btnPaste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPaste.Click
  397.         If Not IsNothing(AppManager.CurrentBrowser.Document) Then
  398.             AppManager.CurrentBrowser.Document.ExecCommand("Paste", False, System.DBNull.Value)
  399.         End If
  400.     End Sub
  401.     Private Sub btnSelectAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelectAll.Click
  402.         If Not IsNothing(AppManager.CurrentBrowser.Document) Then
  403.             AppManager.CurrentBrowser.Document.Focus()
  404.             AppManager.CurrentBrowser.Document.ExecCommand("SelectAll", False, System.DBNull.Value)
  405.             AppManager.CurrentBrowser.Document.Focus()
  406.         End If
  407.     End Sub
  408.     Private Sub btnFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFind.Click
  409.         AppManager.CurrentBrowser.ShowFindDialog()
  410.     End Sub
  411.     Private Sub btnViewSource_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnViewSource.Click
  412.         AppManager.CurrentBrowser.ShowSource()
  413.     End Sub
  414.     Private Sub btnShowFavs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowFavs.Click
  415.         gbFavs.Visible = btnShowFavs.Checked
  416.         Splitter1.Visible = btnShowFavs.Checked
  417.     End Sub
  418.     Private Sub btnInternetOptions_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInternetOptions.Click
  419.         AppManager.CurrentBrowser.ShowInternetOptions()
  420.     End Sub
  421.     Private Sub mnuAddFav2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuAddFav2.Click
  422.         AppManager.CurrentBrowser.AddToFavorites("", "")
  423.     End Sub
  424.     Private Sub AddToFavoritesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddToFavoritesToolStripMenuItem.Click
  425.         AppManager.CurrentBrowser.AddToFavorites(AppManager.CurrentBrowser.Url.ToString, AppManager.CurrentBrowser.DocumentTitle)
  426.     End Sub
  427.     Private Sub OrganizeFavoritesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OrganizeFavoritesToolStripMenuItem.Click
  428.         AppManager.CurrentBrowser.ShowOrganizeFavorites()
  429.     End Sub
  430.     Private Sub mnuNewTab_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuNewTab.Click
  431.         Dim ofrm As New frmBrowser
  432.         Dim oTab As New Ie7Clone.TabPage(ofrm)
  433.         ofrm.wb.Navigate2(AppManager.CurrentBrowser.CurrentURL)
  434.         tc1.TabPages.Add(oTab.Form)
  435.     End Sub
  436.     Private Sub mnulNewTab_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnulNewTab.Click
  437.         Dim ofrm As New frmBrowser
  438.         Dim oTab As New Ie7Clone.TabPage(ofrm)
  439.         'ofrm.MyTabPage = oTab
  440.         AppManager.AddTab(oTab)
  441.     End Sub
  442.     Private Sub mnuViewMenu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuViewMenu.Click
  443.         MainMenu.Visible = mnuViewMenu.Checked
  444.         mnuViewMenuBar.Checked = mnuViewMenu.Checked
  445.     End Sub
  446.     Private Sub mnuViewStatus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuViewStatus.Click
  447.         sBar.Visible = mnuViewStatus.Checked
  448.         mnuViewStatusBar.Checked = mnuViewStatus.Checked
  449.     End Sub
  450.     Private Sub mnuDocExplorer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuDocExplorer.Click
  451.         Dim ofrm As New frmDocExplorer
  452.         ofrm.deWB.Navigate(AppManager.CurrentBrowser.Url.ToString)
  453.         tc1.TabPages.Add(ofrm)
  454.     End Sub
  455.     Private Sub FindOnThisPageToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FindOnThisPageToolStripMenuItem.Click
  456.         AppManager.CurrentBrowser.ShowFindDialog()
  457.     End Sub
  458.     Private Sub lblSec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblSec.Click
  459.         Dim ofrm As New frmSecInfo
  460.         ofrm.ShowDialog(Me)
  461.     End Sub
  462.     Private Sub mnuProperties_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuProperties.Click
  463.         AppManager.CurrentBrowser.ShowPropertiesDialog()
  464.     End Sub
  465.     Private Sub mnuProperties2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuProperties2.Click
  466.         Dim ofrm As New frmProperties
  467.         ofrm.obj = AppManager.CurrentBrowser.Document
  468.         ofrm.ShowDialog(Me)
  469.     End Sub
  470.     Private Sub mnuSecInfo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSecInfo.Click
  471.         Dim ofrm As New frmSecInfo
  472.         ofrm.ShowDialog(Me)
  473.     End Sub
  474.     Private Sub mnuAbout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuAbout.Click
  475.         Dim ofrm As New frmAbout
  476.         ofrm.ShowDialog(Me)
  477.     End Sub
  478.     Private Sub mnuViewSource_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuViewSource.Click
  479.         AppManager.CurrentBrowser.ShowSource()
  480.     End Sub
  481.     Private Sub mnuViewMenuBar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuViewMenuBar.Click
  482.         mnuViewMenu.PerformClick()
  483.     End Sub
  484.     Private Sub mnuViewStatusBar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuViewStatusBar.Click
  485.         mnuViewStatus.PerformClick()
  486.     End Sub
  487.     Private Sub HistoryToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HistoryToolStripMenuItem.Click
  488.         Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.History))
  489.     End Sub
  490.     Private Sub btnDocFav_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDocFav.Click
  491.         Select Case btnDocFav.Tag
  492.             Case 1
  493.                 gbFavs.Dock = DockStyle.Left
  494.                 gbFavs.SendToBack()
  495.                 btnDocFav.Image = My.Resources.Delete16
  496.                 btnDocFav.Tag = 2
  497.             Case 2
  498.                 gbFavs.Dock = DockStyle.None
  499.                 btnDocFav.Image = My.Resources.favDock
  500.                 gbFavs.BringToFront()
  501.                 gbFavs.Visible = False
  502.                 btnDocFav.Tag = 1
  503.         End Select
  504.     End Sub
  505.     Private Sub mnuSettings_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSettings.Click
  506.         Dim ofrm As New frmSettings
  507.         ofrm.ShowDialog(Me)
  508.     End Sub
  509.     Private Sub btnRSS_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRSS.Click
  510.         Dim ofrm As New frmRSS
  511.         tc1.TabPages.Add(ofrm)
  512.     End Sub
  513.     Private Sub mnuPageSetup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPageSetup.Click
  514.         AppManager.CurrentBrowser.ShowPageSetupDialog()
  515.     End Sub
  516.     Private Sub mnuPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPrint.Click
  517.         AppManager.CurrentBrowser.ShowPrintDialog()
  518.     End Sub
  519.     Private Sub mnuPrintPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPrintPreview.Click
  520.         AppManager.CurrentBrowser.ShowPrintPreviewDialog()
  521.     End Sub
  522.     Private Sub mnuFProperties_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFProperties.Click
  523.         AppManager.CurrentBrowser.ShowPropertiesDialog()
  524.     End Sub
  525.     Private Sub mnuSaveAs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSaveAs.Click
  526.         AppManager.CurrentBrowser.ShowSaveAsDialog()
  527.     End Sub
  528.     Private Sub mnuClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuClose.Click
  529.         Me.Close()
  530.     End Sub
  531.     Private Sub mnuOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuOpen.Click
  532.         AppManager.CurrentBrowser.ShowOpen()
  533.     End Sub
  534.     Private Sub RSSViewerToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RSSViewerToolStripMenuItem.Click
  535.         btnRSS.PerformClick()
  536.     End Sub
  537.     Private Sub InternetOptionsToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InternetOptionsToolStripMenuItem1.Click
  538.         AppManager.CurrentBrowser.ShowInternetOptions()
  539.     End Sub
  540.     Private Sub SettingsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SettingsToolStripMenuItem.Click
  541.         Dim ofrm As New frmSettings
  542.         ofrm.ShowDialog(Me)
  543.     End Sub
  544.     Private Sub PropertiesToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PropertiesToolStripMenuItem1.Click
  545.         AppManager.CurrentBrowser.ShowPropertiesDialog()
  546.     End Sub
  547.     Private Sub mnuLeftToRight_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuLeftToRight.Click
  548.         AppManager.CurrentBrowser.Document.RightToLeft = False
  549.         mnuRightToLeft.Checked = False
  550.     End Sub
  551.     Private Sub mnuRightToLeft_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuRightToLeft.Click
  552.         AppManager.CurrentBrowser.Document.RightToLeft = True
  553.         mnuLeftToRight.Checked = False
  554.     End Sub
  555.     Private Sub btnFeeds_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFeeds.Click
  556.         Dim ofrm As New frmRSS
  557.         Me.tc1.TabPages.Add(ofrm)
  558.         gbFavs.Visible = False
  559.     End Sub
  560.     Private Sub btnHistory_ButtonClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
  561.         Dim ofrm As New frmBrowser
  562.         AppManager.AddTab(ofrm, Environment.GetFolderPath(Environment.SpecialFolder.History))
  563.         gbFavs.Visible = False
  564.     End Sub
  565. #End Region
  566. #Region " Tab Control "
  567.     Private Sub tc1_SelectedTabChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles tc1.SelectedTabChanged
  568.         On Error Resume Next
  569.         Dim cForm As Form = tc1.SelectedForm
  570.         If TypeOf cForm Is frmBrowser Then
  571.             Dim ofrm As frmBrowser = cForm
  572.             Me.Text = cForm.Text & " - " & My.Resources.AppName
  573.             cboURL.Text = ofrm.wb.Url.ToString
  574.             AppManager.CurrentBrowser = ofrm.wb
  575.             btnBack.Enabled = AppManager.CurrentBrowser.CanGoBack
  576.             btnForward.Enabled = AppManager.CurrentBrowser.CanGoForward
  577.             If ofrm.NumFeeds = 0 Then
  578.                 mnuFeeds.Enabled = False
  579.             Else
  580.                 mnuFeeds.Enabled = True
  581.             End If
  582.         Else
  583.             'Nothing to do
  584.         End If
  585.     End Sub
  586. #Region " Legacy Code "
  587.     'The author of our tab control was kind enough to send an update on this control
  588.     'So this code is not longer needed.
  589.     'Private Sub tc1_OnSelectedTabChanged(ByVal e As System.Windows.Forms.Form) Handles tc1.OnSelectedTabChanged
  590.     '    SetBrowser(e)
  591.     'End Sub
  592.     'Private Sub SetBrowser(ByVal cForm As Form)
  593.     '    On Error Resume Next
  594.     '    If TypeOf cForm Is frmBrowser Then
  595.     '        Dim ofrm As frmBrowser = cForm
  596.     '        Me.Text = cForm.Text & " - " & My.Resources.AppName
  597.     '        cboURL.Text = ofrm.wb.Url.ToString
  598.     '        AppManager.CurrentBrowser = ofrm.wb
  599.     '        btnBack.Enabled = AppManager.CurrentBrowser.CanGoBack
  600.     '        btnForward.Enabled = AppManager.CurrentBrowser.CanGoForward
  601.     '    Else
  602.     '    End If
  603.     'End Sub
  604. #End Region
  605. #End Region
  606.     Private Sub mnuGrabImages_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuGrabImages.Click
  607.         Dim ofrm As New frmScrapeImages
  608.         ofrm.ShowDialog(AppManager.MainForm)
  609.     End Sub
  610.     Private Sub PropertiesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PropertiesToolStripMenuItem.Click
  611.         tFileInfo.ShowProp(fitm.Tag)
  612.     End Sub
  613.     Private Sub DeleteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DeleteToolStripMenuItem.Click
  614.         If MessageBox.Show("Are you sure you want to delete " & fitm.Text & "?", "Confirm Delete", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
  615.             File.Delete(fitm.Tag)
  616.             tbLinks.Items.Remove(fitm)
  617.         End If
  618.     End Sub
  619.     Private Sub OpenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenToolStripMenuItem.Click
  620.         Dim obj As New tlxIni(fitm.Tag)
  621.         AppManager.CurrentBrowser.Navigate(obj.GetString("INTERNETSHORTCUT", "URL", String.Empty))
  622.     End Sub
  623.     Private Sub RenameToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RenameToolStripMenuItem.Click
  624.         Dim fInfo As New FileInfo(fitm.Tag)
  625.         Dim NewName As String = InputBox("Rename " & fitm.Text, "Rename Favorite", fitm.Text)
  626.         File.Copy(fitm.Tag, fInfo.Directory.ToString & "" & NewName & ".url")
  627.         File.Delete(fitm.Tag)
  628.         fitm.Text = NewName
  629.         fitm.Tag = fInfo.Directory.ToString & "" & NewName & ".url"
  630.     End Sub
  631.     Private Sub mnuCheckFeeds_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuCheckFeeds.Click
  632.         Dim ofrm As New frmDetectRSS
  633.         ofrm.ShowDialog(Me)
  634.     End Sub
  635.     Private Sub btnHistory_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHistory.Click
  636.         Dim ofrm As New frmHistory
  637.         ofrm.LoadMode = frmHistory.LoadModes.History
  638.         ofrm.Text = "History Viewer"
  639.         tc1.TabPages.Add(ofrm)
  640.         gbFavs.Visible = False
  641.     End Sub
  642.     Private Sub btnViewCookies_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnViewCookies.Click
  643.         Dim ofrm As New frmCookieViewer
  644.         tc1.TabPages.Add(ofrm)
  645.         gbFavs.Visible = False
  646.     End Sub
  647.     Private Sub mnuCache_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuHistory.Click
  648.         Dim ofrm As New frmHistory
  649.         ofrm.LoadMode = frmHistory.LoadModes.History
  650.         ofrm.Text = "History Viewer"
  651.         tc1.TabPages.Add(ofrm)
  652.         gbFavs.Visible = False
  653.     End Sub
  654.     Private Sub mnuTempFiles_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuTempFiles.Click
  655.         Dim ofrm As New frmHistory
  656.         ofrm.LoadMode = frmHistory.LoadModes.Cache
  657.         ofrm.Text = "Cache Viewer"
  658.         tc1.TabPages.Add(ofrm)
  659.         gbFavs.Visible = False
  660.     End Sub
  661.     Private Sub mnuAllWindows_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuAllWindows.Click
  662.         Dim ofrm As New frmAllBrowsers
  663.         tc1.TabPages.Add(ofrm)
  664.     End Sub
  665.     Private Sub mnuFeeds_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFeeds.Click
  666.         Dim ofrm As New frmDetectRSS
  667.         ofrm.ShowDialog(Me)
  668.     End Sub
  669.     Private Sub 新朋友ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 新朋友ToolStripMenuItem.Click
  670.         新朋友.Show()
  671.     End Sub
  672.     Private Sub 新朋友ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 新朋友ToolStripMenuItem1.Click
  673.         新朋友.Show()
  674.     End Sub
  675. End Class