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

C#编程

开发平台:

C#

  1. 'Main browser form
  2. 'Thomas Maxwell - 2007
  3. Imports System.IO
  4. Imports System.Net
  5. Imports System.Drawing
  6. Imports System.Drawing.Drawing2D
  7. 'We need to set com visible to true so the form can be the browsers scripting object.
  8. <System.Runtime.InteropServices.ComVisibleAttribute(True)> _
  9. Public Class frmBrowser
  10.     Public WithEvents oDoc As HtmlDocument
  11.     Private oElement As HtmlElement
  12.     Private TempPopAllowed As Boolean = False
  13.     Private popURL As String
  14.     Private LastDomain As String
  15.     'Public PageImage As New PictureBox
  16.     Public NumFeeds As Integer = 0
  17. #Region " Form "
  18.     Private Sub frmBrowser_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
  19.         oDoc = Nothing
  20.         wb.Dispose()
  21.         'May implement this in a future version...
  22.         'If Not IsNothing(PageImage) Then
  23.         '    PageImage.Dispose()
  24.         'End If
  25.     End Sub
  26.     Private Sub frmBrowser_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  27.         AppManager.CurrentBrowser = Me.wb
  28.         wb.ObjectForScripting = Me
  29.         'IE 7 does not seem to like the send to desktop code... so.
  30.         If wb.Version.Major = "7" Then
  31.             mnuPageToDesktop.Visible = False
  32.         End If
  33.         'set which context menu to use.
  34.         Me.wb.IsWebBrowserContextMenuEnabled = Not (My.Settings.UseInternalMenu)
  35.     End Sub
  36. #End Region
  37. #Region " Handleing Document Script Calls "
  38.     'Since we are using the browser control, we have to handle javascript and other events raised by
  39.     'the html document that target window.external such as add to favorites, organize favorites etc. 
  40.     'We could implement this in the extended control itself, 
  41.     'but for purposes of this demo, we will handle a couple common ones
  42.     'in this region.
  43.     '// Security note on Javascript handleing, you will probably want to check to make
  44.     '//sure that the event was raised by a user click or show dialogs, not allow automatic running of
  45.     '//these routines by using dialogs or other methods.
  46.     '//Make sure your signatures match the common calls from the page.
  47.     Public Sub AddSearchProvider(ByVal value As String)
  48.         ' See: http://www.opensearch.org/ for more information.
  49.         Dim ofrm As New frmAddSearchProvider
  50.         ofrm.strXML = value
  51.         ofrm.Show()
  52.     End Sub
  53.     Public Sub AddFavorite(ByVal strURL As String, ByVal strTitle As String)
  54.         wb.AddToFavorites(Trim(strURL), Trim(strTitle))
  55.     End Sub
  56.     Public Sub OrganizeFavorites()
  57.         wb.ShowOrganizeFavorites()
  58.     End Sub
  59.     Public Sub ShowCalc()
  60.         Process.Start("Calc.exe")
  61.     End Sub
  62.     Public Sub ShowSettings()
  63.         Dim ofrm As New frmSettings
  64.         ofrm.ShowDialog(AppManager.MainForm)
  65.     End Sub
  66. #End Region
  67. #Region " Browser Control  / Document "
  68.     Private Sub wb_CanGoBackChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles wb.CanGoBackChanged
  69.         AppManager.MainForm.btnBack.Enabled = wb.CanGoBack
  70.     End Sub
  71.     Private Sub wb_CanGoForwardChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles wb.CanGoForwardChanged
  72.         AppManager.MainForm.btnForward.Enabled = wb.CanGoForward
  73.     End Sub
  74.     Private Sub wb_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles wb.DocumentCompleted
  75.         oDoc = wb.Document
  76.         Dim s As String
  77.         Dim strDomain() As String
  78.         For Each s In My.Settings.BlockedSites
  79.             strDomain = Split(s, "http://")
  80.             If strDomain(1) = wb.Document.Domain Then
  81.                 wb.DocumentText = My.Resources.Blocked
  82.                 AppManager.MainForm.pBar.Visible = False
  83.                 Exit Sub
  84.             End If
  85.         Next
  86.         Me.Text = wb.DocumentTitle
  87.         'Here you may want to prefetch the icon, or implement a form of caching icons.
  88.         AppManager.MainForm.pBar.Visible = False
  89.         If LastDomain = oDoc.Domain Then
  90.             'We want to leave the popup settings alone.
  91.         Else
  92.             'different domain, reset the popup blocker.
  93.             Me.TempPopAllowed = False
  94.             InfoBar1.PictureBox1.Image = My.Resources.popBlocked
  95.             InfoBar1.Text = " Pop up blocked."
  96.             LastDomain = oDoc.Domain
  97.         End If
  98.         '///////////////////////////////////////////////////////////
  99.         'This is not implemented in this version of the example...
  100.         'PageImage.Image.Dispose()
  101.         'Dim oCap As New ScreenCap
  102.         'Create the new image
  103.         'Dim obm As New Bitmap(oCap.CaptureWindow(Me.wb.Handle))
  104.         'PageImage.Image = obm
  105.         '///////////////////////////////////////////////////////////
  106.         If My.Settings.UsePhishingFilter = True Then
  107.             RunPhishingFilter()
  108.         End If
  109.     End Sub
  110.     Private Sub oDoc_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.HtmlElementEventArgs) Handles oDoc.MouseDown
  111.         'Here is it's an input element? if yes we want to show the normal windows options....
  112.         If My.Settings.UseInternalMenu = True Then
  113.             If e.MouseButtonsPressed = Windows.Forms.MouseButtons.Right And oElement.TagName = "INPUT" Then
  114.                 wb.IsWebBrowserContextMenuEnabled = True
  115.             Else
  116.                 wb.IsWebBrowserContextMenuEnabled = False
  117.             End If
  118.         End If
  119.         Dim MPoint As New Point(e.MousePosition.X, e.MousePosition.Y)
  120.         oElement = oDoc.GetElementFromPoint(MPoint)
  121.     End Sub
  122.     Private Sub oDoc_MouseMove(ByVal sender As Object, _
  123.     ByVal e As System.Windows.Forms.HtmlElementEventArgs) Handles oDoc.MouseMove
  124.         On Error Resume Next
  125.         Dim MPoint As New Point(e.MousePosition.X, e.MousePosition.Y)
  126.         If My.Settings.ShowTags = True Then
  127.             AppManager.MainForm.lblElement.Text = "<" & oElement.TagName & ">"
  128.         Else
  129.             AppManager.MainForm.lblElement.Text = String.Empty
  130.         End If
  131.         oElement = oDoc.GetElementFromPoint(MPoint)
  132.     End Sub
  133.     Private Sub wb_EncryptionLevelChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles wb.EncryptionLevelChanged
  134.         With AppManager.MainForm.lblSec
  135.             Select Case wb.EncryptionLevel
  136.                 Case WebBrowserEncryptionLevel.Bit128
  137.                     .Image = My.Resources.Lock
  138.                 Case WebBrowserEncryptionLevel.Bit40
  139.                     .Image = My.Resources.Lock
  140.                 Case WebBrowserEncryptionLevel.Bit56
  141.                     .Image = My.Resources.Lock
  142.                 Case WebBrowserEncryptionLevel.Fortezza
  143.                     .Image = My.Resources.Lock
  144.                 Case WebBrowserEncryptionLevel.Insecure
  145.                     .Image = My.Resources.LockOpen
  146.                 Case WebBrowserEncryptionLevel.Mixed
  147.                     .Image = My.Resources.LockOpen
  148.                 Case WebBrowserEncryptionLevel.Unknown
  149.                     .Image = My.Resources.LockOpen
  150.                 Case Else
  151.                     .Image = My.Resources.LockOpen
  152.             End Select
  153.             .ToolTipText = wb.EncryptionLevel.ToString
  154.         End With
  155.     End Sub
  156.     Private Sub wb_NavigatingExtended(ByVal sender As Object, ByVal e As exBrowser.WebBrowserNavigatingExtendedEventArgs) Handles wb.NavigatingExtended
  157.         'Is it a download?
  158.         If My.Settings.UseDLManager = True Then
  159.             Dim strFile As String
  160.             For Each strFile In My.Settings.FilesToDL
  161.                 If e.Url.EndsWith(strFile) Then
  162.                     e.Cancel = True
  163.                     Dim ofrm As New frmDownload
  164.                     ofrm.DLURL = e.Url.ToString
  165.                     ofrm.ShowDialog(AppManager.MainForm)
  166.                     Exit Sub
  167.                 End If
  168.             Next
  169.         End If
  170.         Dim s As String
  171.         For Each s In My.Settings.BlockedSites
  172.             If s = e.Url.ToString Or s & "/" = e.Url.ToString Then
  173.                 e.Cancel = True
  174.                 wb.DocumentText = My.Resources.Blocked
  175.                 AppManager.MainForm.pBar.Visible = False
  176.             Else
  177.                 AppManager.MainForm.pBar.Visible = True
  178.             End If
  179.         Next
  180.     End Sub
  181.     Private Sub wb_NewWindow(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles wb.NewWindow
  182.         e.Cancel = True
  183.     End Sub
  184.     Private Sub wb_NewWindowExtended(ByVal sender As Object, _
  185.     ByVal e As exBrowser.WebBrowserNewWindowExtendedEventArgs) Handles wb.NewWindowExtended
  186.         'Here we could implement whatever we want to based on the url
  187.         '1st we will check to see if the url is a file in our download manager list...
  188.         '//////////// DL Checking here //////////////////////
  189.         If My.Settings.UseDLManager = True Then
  190.             Dim strFile As String
  191.             For Each strFile In My.Settings.FilesToDL
  192.                 If e.Url.EndsWith(strFile) Then
  193.                     e.Cancel = True
  194.                     Dim ofrm As New frmDownload
  195.                     ofrm.DLURL = e.Url.ToString
  196.                     ofrm.ShowDialog(AppManager.MainForm)
  197.                     Exit Sub
  198.                 End If
  199.             Next
  200.         End If
  201.         '//////////// End DL checking ///////////////////////
  202.         'Here we implement something simular to IE 7
  203.         'You might want to allow shit + click or some other override, that's up to you.
  204.         '1st check if site is in allowed list
  205.         Dim s As String
  206.         For Each s In My.Settings.AllowedPopSites
  207.             If s = wb.Document.Domain Then
  208.                 'Site is allowed... Show pop in new tab and exit...
  209.                 e.Cancel = True
  210.                 Dim ofrm As New frmBrowser
  211.                 AppManager.AddTab(ofrm, e.Url.ToString)
  212.                 Exit Sub
  213.             End If
  214.         Next
  215.         If My.Settings.PopUpBlockerEnabled = True Then
  216.             If Me.TempPopAllowed = True Then
  217.                 'Site temporarily allowed... open in new tab, then exit...
  218.                 e.Cancel = True
  219.                 Dim ofrm As New frmBrowser
  220.                 AppManager.AddTab(ofrm, e.Url.ToString)
  221.                 Exit Sub
  222.             Else
  223.                 'Blocker is enabled and not temp allowed...
  224.                 e.Cancel = True
  225.                 If My.Settings.PopSound = True Then
  226.                     My.Computer.Audio.Play(My.Resources.Windows_Pop_up_Blocked, AudioPlayMode.Background)
  227.                 End If
  228.                 If My.Settings.PopInfoBar = True Then
  229.                     Me.InfoBar1.Visible = True
  230.                 End If
  231.                 popURL = e.Url.ToString
  232.             End If
  233.         Else
  234.             'Blocker is not enabled... open in new tab.
  235.             e.Cancel = True
  236.             Dim ofrm As New frmBrowser
  237.             AppManager.AddTab(ofrm, e.Url.ToString)
  238.         End If
  239.     End Sub
  240.     Private Sub wb_StatusTextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles wb.StatusTextChanged
  241.         If AppManager.CurrentBrowser Is Me.wb Then
  242.             AppManager.MainForm.lblStatus.Text = wb.StatusText
  243.         End If
  244.     End Sub
  245.     Private Function FixURL(ByVal sURL As String) As String
  246.         sURL = sURL.Trim
  247.         If Not sURL.ToLower().StartsWith("http://") _
  248.         Then sURL = "http://" & sURL
  249.         Return sURL
  250.     End Function
  251.     Private Sub wb_DocumentTitleChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles wb.DocumentTitleChanged
  252.         Me.Text = wb.DocumentTitle
  253.         AppManager.MainForm.Text = wb.DocumentTitle & " - " & My.Resources.AppName
  254.     End Sub
  255.     Private Sub wb_Navigated(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatedEventArgs) Handles wb.Navigated
  256.         AppManager.MainForm.pBar.Visible = False
  257.         Me.Icon = AppManager.GetFavIcon(wb.Document.Domain & "/favicon.ico")
  258.         AppManager.MainForm.tc1.TabPages(Me).Icon = Me.Icon
  259.         AppManager.MainForm.Text = wb.DocumentTitle & " - " & My.Resources.AppName
  260.         AppManager.MainForm.cboURL.Text = wb.Url.ToString
  261.         DetectFeeds()
  262.     End Sub
  263.     Private Sub RunPhishingFilter()
  264.         '///////////////////////////////////////////////////////////
  265.         'Here you could parse the page for bad links, images etc from
  266.         'a known list of sites...
  267.         'Here we will just use the blocked sites list
  268.         'as an example of what to do
  269.         '///////////////////////////////////////////////////////////
  270.         Dim BadLink As Boolean = False
  271.         Dim oEl As HtmlElement
  272.         Dim s As String
  273.         Dim li As ListItem
  274.         Dim ofrm As New frmPhising
  275.         For Each oEl In oDoc.Links
  276.             For Each s In My.Settings.PhishingSites
  277.                 If InStr(oEl.GetAttribute("HREF"), s) Then
  278.                     li = New ListItem
  279.                     li.Text = oEl.GetAttribute("HREF")
  280.                     ofrm.lbPhishing.Items.Add(li)
  281.                     BadLink = True
  282.                 End If
  283.             Next
  284.         Next
  285.         If BadLink = True Then
  286.             ofrm.ShowDialog()
  287.         Else
  288.             ofrm.Dispose()
  289.         End If
  290.     End Sub
  291.     Private Sub DetectFeeds()
  292.         Try
  293.             Dim oEl As HtmlElement
  294.             For Each oEl In wb.Document.All
  295.                 If oEl.GetAttribute("Type") = "application/rss+xml" Then
  296.                     NumFeeds = NumFeeds + 1
  297.                 End If
  298.             Next
  299.             If NumFeeds = 0 Then
  300.                 AppManager.MainForm.mnuFeeds.Enabled = False
  301.             Else
  302.                 AppManager.MainForm.mnuFeeds.Enabled = True
  303.             End If
  304.         Catch ex As Exception
  305.             NumFeeds = 0
  306.             AppManager.MainForm.mnuFeeds.Enabled = False
  307.         End Try
  308.     End Sub
  309. #End Region
  310. #Region " Context Menu "
  311.     Private Sub mnuImageSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuImageSave.Click
  312.         Dim opb As New PictureBox
  313.         Dim sfd As New SaveFileDialog
  314.         Try
  315.             Dim odir As String = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)
  316.             sfd.InitialDirectory = odir.ToString
  317.             Dim ofile() As String = Split(oElement.GetAttribute("src"), "/")
  318.             sfd.Title = "Save web image"
  319.             sfd.FileName = ofile(UBound(ofile)).ToString
  320.             If sfd.ShowDialog() = Windows.Forms.DialogResult.OK Then
  321.                 If sfd.FileName = String.Empty Then
  322.                     Exit Sub
  323.                 Else
  324.                     AppManager.LoadWebImageToPictureBox(opb, oElement.GetAttribute("src"))
  325.                     opb.Image.Save(sfd.FileName, Imaging.ImageFormat.Gif)
  326.                 End If
  327.             End If
  328.         Catch ex As Exception
  329.             Dim ofrm As New frmError
  330.             ofrm.err = ex
  331.             ofrm.ShowDialog()
  332.         Finally
  333.             opb.Dispose()
  334.             sfd.Dispose()
  335.         End Try
  336.     End Sub
  337.     Private Sub ContextMenuStrip1_Opening(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles ContextMenuStrip1.Opening
  338.         If Not IsNothing(oElement) Then
  339.             If oElement.TagName = "IMG" Then
  340.                 mnuImage.Enabled = True
  341.             Else
  342.                 mnuImage.Enabled = False
  343.             End If
  344.             If oElement.TagName = "A" Then
  345.                 mnuLink.Enabled = True
  346.             Else
  347.                 mnuLink.Enabled = False
  348.             End If
  349.         End If
  350.         mnuBack.Enabled = AppManager.CurrentBrowser.CanGoBack
  351.         mnuForward.Enabled = AppManager.CurrentBrowser.CanGoForward
  352.     End Sub
  353.     Private Sub ElemToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ElemToolStripMenuItem.Click
  354.         ShowProps()
  355.     End Sub
  356.     Private Sub mnuLinkNewTab_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuLinkNewTab.Click
  357.         Dim ofrm As New frmBrowser
  358.         AppManager.AddTab(ofrm, oElement.GetAttribute("HREF"))
  359.     End Sub
  360.     Private Sub mnuImageProperties_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuImageProperties.Click
  361.         ShowProps()
  362.     End Sub
  363.     Private Sub ShowProps()
  364.         Dim ofrm As New frmProperties
  365.         ofrm.obj = oElement
  366.         ofrm.Show()
  367.     End Sub
  368.     Private Sub PrToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrToolStripMenuItem.Click
  369.         ShowProps()
  370.     End Sub
  371.     Private Sub PropertiesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PropertiesToolStripMenuItem.Click
  372.         AppManager.CurrentBrowser.ShowPropertiesDialog()
  373.     End Sub
  374.     Private Sub mnuPageSaveAs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPageSaveAs.Click
  375.         AppManager.CurrentBrowser.ShowSaveAsDialog()
  376.     End Sub
  377.     Private Sub mnuPageToDesktop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPageToDesktop.Click
  378.         Try
  379.             AppManager.CurrentBrowser.SendToDesktop()
  380.         Catch ex As Exception
  381.             MessageBox.Show("An error occured saving to desktop" & vbCrLf & _
  382.             "There seems to be an issue if you have Internet Explorer 7 installed.", _
  383.             My.Resources.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error)
  384.         End Try
  385.     End Sub
  386.     Private Sub AdToFavoritesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AdToFavoritesToolStripMenuItem.Click
  387.         AppManager.CurrentBrowser.AddToFavorites()
  388.     End Sub
  389.     Private Sub mnuPagePrintSetup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPagePrintSetup.Click
  390.         AppManager.CurrentBrowser.ShowPageSetupDialog()
  391.     End Sub
  392.     Private Sub mnuPagePrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPagePrint.Click
  393.         AppManager.CurrentBrowser.ShowPrintDialog()
  394.     End Sub
  395.     Private Sub mnuPagePrintPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPagePrintPreview.Click
  396.         AppManager.CurrentBrowser.ShowPrintPreviewDialog()
  397.     End Sub
  398.     Private Sub mnuCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuCopy.Click
  399.         AppManager.CurrentBrowser.Document.ExecCommand("Copy", False, System.DBNull.Value)
  400.     End Sub
  401.     Private Sub mnuPaste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPaste.Click
  402.         AppManager.CurrentBrowser.Document.ExecCommand("Paste", False, System.DBNull.Value)
  403.     End Sub
  404.     Private Sub mnuCopyLink_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuCopyLink.Click
  405.         Clipboard.SetText(oElement.GetAttribute("HREF"))
  406.     End Sub
  407.     Private Sub mnuViewImageNewTab_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuViewImageNewTab.Click
  408.         Dim ofrm As New frmBrowser
  409.         AppManager.AddTab(ofrm, oElement.GetAttribute("src"))
  410.     End Sub
  411.     Private Sub mnuFind_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuFind.Click
  412.         AppManager.CurrentBrowser.ShowFindDialog()
  413.     End Sub
  414.     Private Sub wb_ProgressChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) Handles wb.ProgressChanged
  415.         If AppManager.CurrentBrowser Is Me.wb Then
  416.             AppManager.MainForm.lblStatus.Text = wb.StatusText
  417.             AppManager.MainForm.pBar.Value = ((e.CurrentProgress / e.MaximumProgress) * 100)
  418.         End If
  419.     End Sub
  420.     Private Sub mnuImageCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuImageCopy.Click
  421.         Dim opb As New PictureBox
  422.         AppManager.LoadWebImageToPictureBox(opb, oElement.GetAttribute("src"))
  423.         Clipboard.SetImage(opb.Image)
  424.         opb.Dispose()
  425.     End Sub
  426.     Private Sub mnuShowRuler_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuShowRuler.Click
  427.         Ruler1.Visible = mnuShowRuler.Checked
  428.     End Sub
  429.     Private Sub mnuShowLabels_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuShowLabels.Click
  430.         Ruler1.DrawLabels = mnuShowLabels.Checked
  431.     End Sub
  432.     Private Sub muShowBorder_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles muShowBorder.Click
  433.         Ruler1.ShowBorder = muShowBorder.Checked
  434.     End Sub
  435.     Private Sub mnuTopOnly_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuTopOnly.Click
  436.         Ruler1.DrawMode = Ruler.DrawModes.TopOnly
  437.         mnuBottomOnly.Checked = False
  438.         mnuTopandBottom.Checked = False
  439.     End Sub
  440.     Private Sub mnuBottomOnly_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuBottomOnly.Click
  441.         Ruler1.DrawMode = Ruler.DrawModes.BottomOnly
  442.         mnuTopOnly.Checked = False
  443.         mnuTopandBottom.Checked = False
  444.     End Sub
  445.     Private Sub mnuTopandBottom_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuTopandBottom.Click
  446.         Ruler1.DrawMode = Ruler.DrawModes.TopAndBottom
  447.         mnuTopOnly.Checked = False
  448.         mnuBottomOnly.Checked = False
  449.     End Sub
  450.     Private Sub mnuLeftToRight_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuLeftToRight.Click
  451.         AppManager.MainForm.mnuLeftToRight.PerformClick()
  452.         mnuRightToLeft.Checked = False
  453.     End Sub
  454.     Private Sub mnuRightToLeft_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuRightToLeft.Click
  455.         AppManager.MainForm.mnuRightToLeft.PerformClick()
  456.         mnuLeftToRight.Checked = False
  457.     End Sub
  458.     Private Sub mnuPage_DropDownOpening(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuPage.DropDownOpening
  459.         Select Case wb.Document.RightToLeft
  460.             Case True
  461.                 mnuLeftToRight.Checked = False
  462.                 mnuRightToLeft.Checked = True
  463.             Case False
  464.                 mnuLeftToRight.Checked = True
  465.                 mnuRightToLeft.Checked = False
  466.         End Select
  467.     End Sub
  468.     Private Sub mnuPopTempAllow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPopTempAllow.Click
  469.         Me.TempPopAllowed = True
  470.         InfoBar1.Text = "Popups Temporarily allowed."
  471.         InfoBar1.PictureBox1.Image = My.Resources.popallowed
  472.         If Me.popURL = "" Then
  473.             'Nothing to do
  474.         Else
  475.             Dim oFrm As New frmBrowser
  476.             AppManager.AddTab(oFrm, popURL)
  477.             InfoBar1.Visible = False
  478.         End If
  479.     End Sub
  480.     Private Sub mnuPopAllowthissite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPopAllowthissite.Click
  481.         My.Settings.AllowedPopSites.Add(wb.Document.Domain)
  482.     End Sub
  483.     Private Sub mnuPopBlockEnabled_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPopBlockEnabled.Click
  484.         My.Settings.PopUpBlockerEnabled = mnuPopBlockEnabled.Checked
  485.     End Sub
  486.     Private Sub mnuPopShowInfoBar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPopShowInfoBar.Click
  487.         My.Settings.PopInfoBar = mnuPopShowInfoBar.Checked
  488.     End Sub
  489.     Private Sub mnuPopMoreSettings_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPopMoreSettings.Click
  490.         Dim ofrm As New frmSettings
  491.         ofrm.TabControl1.SelectedIndex = 0
  492.         ofrm.ShowDialog(AppManager.MainForm)
  493.     End Sub
  494.     Private Sub cmiInfoBar_Opening(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles cmiInfoBar.Opening
  495.         Select Case My.Settings.PopUpBlockerEnabled
  496.             Case True
  497.                 mnuPopBlockEnabled.Text = "Pop up Blocker Enabled."
  498.             Case False
  499.                 mnuPopBlockEnabled.Text = "Pop up Blocker Disabled."
  500.         End Select
  501.         mnuPopBlockEnabled.Checked = My.Settings.PopUpBlockerEnabled
  502.         mnuPopShowInfoBar.Checked = My.Settings.PopInfoBar
  503.     End Sub
  504.     Private Sub mnuPageNewTab_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPageNewTab.Click
  505.         Dim ofrm As New frmBrowser
  506.         AppManager.AddTab(ofrm, wb.Document.Url.ToString)
  507.     End Sub
  508.     Private Sub SaveAsImageToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveAsImageToolStripMenuItem.Click
  509.         Dim ofrm As New frmImage
  510.         Dim op2i As New Page2Image
  511.         ofrm.pb.Image = op2i.CapturePage(wb.Document)
  512.         ofrm.Show()
  513.     End Sub
  514.     Private Sub mnuSaveAllImages_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuSaveAllImages.Click
  515.         Dim ofrm As New frmScrapeImages
  516.         ofrm.ShowDialog(AppManager.MainForm)
  517.     End Sub
  518. #End Region
  519.     Private Sub 关于ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 关于ToolStripMenuItem.Click
  520.         frmAbout.Show()
  521.     End Sub
  522.     Private Sub 最新交往ToolStripMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles 最新交往ToolStripMenuItem.Click
  523.         新朋友.Show()
  524.     End Sub
  525. End Class