Веб-браузер контролирует автоматический размер полной веб-страницы

#vb.net #web #browser #webbrowser-control

#vb.net #веб #браузер #веб-браузер-контроль

Вопрос:

Есть ли способ заставить веб-браузер автоматически изменять размер полной веб-страницы? Вот так:

введите описание изображения здесь

     Public Class Form1
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Text = "Web Browser"
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        WebBrowser1.Navigate(TextBox1.Text)
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        WebBrowser1.GoBack()
    End Sub
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        WebBrowser1.GoForward()
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        WebBrowser1.Refresh()
    End Sub
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        WebBrowser1.Navigate("http://www.google.pt")
    End Sub
End Class
  

У меня просто есть этот код…
куда я должен поместить код?

Комментарии:

1. вы полностью прочитали эту ссылку на msdn?

2. да, но я не понимаю, что мне нужно делать…

3. так что просто посмотрите это или предоставьте свой код??

4. код уже здесь

Ответ №1:

  • сначала вы должны поместить TimerControl в свой form
  • остальное приведено ниже

    Открытый класс Form1

         Dim pswaHeight As Object
        Dim pswaWidth As Object
        Dim pswaHeightInt As Integer
        Dim pswaWidthInt As Integer
    
        Private Enum Exec
            OLECMDID_OPTICAL_ZOOM = 63
        End Enum
    
        Private Enum execOpt
            OLECMDEXECOPT_DODEFAULT = 0
            OLECMDEXECOPT_PROMPTUSER = 1
            OLECMDEXECOPT_DONTPROMPTUSER = 2
            OLECMDEXECOPT_SHOWHELP = 3
        End Enum
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    
            pswaHeight = Screen.PrimaryScreen.WorkingArea.Height
            pswaWidth = Screen.PrimaryScreen.WorkingArea.Width
            pswaHeightInt = CInt(pswaHeight)
            pswaWidthInt = CInt(pswaWidth)
    
            Me.Text = "Web Browser"
    
        End Sub
    
        Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
            Timer1.Start()
        End Sub
    
        Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    
    
            If WebBrowser1.Width > Math.Round(pswaWidthInt / 5.6) And WebBrowser1.Width < Math.Round(pswaWidthInt / 2.97) Or WebBrowser1.Height > Math.Round(pswaHeightInt / 3.0) And WebBrowser1.Height < Math.Round(pswaHeightInt / 2.4) Then
                Try
                    Dim Res As Object = Nothing
                    Dim MyWeb As Object
                    MyWeb = Me.WebBrowser1.ActiveXInstance
                    MyWeb.ExecWB(Exec.OLECMDID_OPTICAL_ZOOM, execOpt.OLECMDEXECOPT_PROMPTUSER, 40, IntPtr.Zero)
                Catch ex As Exception
                    MsgBox(ex.Message)
                End Try
            End If
    
            If WebBrowser1.Width > Math.Round(pswaWidthInt / 2.97) And WebBrowser1.Width < Math.Round(pswaWidthInt / 2.58) Or WebBrowser1.Height > Math.Round(pswaHeightInt / 2.4) And WebBrowser1.Height < Math.Round(pswaHeightInt / 2.13) Then
                Try
                    Dim Res As Object = Nothing
                    Dim MyWeb As Object
                    MyWeb = Me.WebBrowser1.ActiveXInstance
                    MyWeb.ExecWB(Exec.OLECMDID_OPTICAL_ZOOM, execOpt.OLECMDEXECOPT_PROMPTUSER, 50, IntPtr.Zero)
                Catch ex As Exception
                    MsgBox(ex.Message)
                End Try
            End If
    
            If WebBrowser1.Width > Math.Round(pswaWidthInt / 2.58) And WebBrowser1.Width < Math.Round(pswaWidthInt / 2.23) Or WebBrowser1.Height > Math.Round(pswaHeightInt / 2.13) And WebBrowser1.Height < Math.Round(pswaHeightInt / 1.85) Then
                Try
                    Dim Res As Object = Nothing
                    Dim MyWeb As Object
                    MyWeb = Me.WebBrowser1.ActiveXInstance
                    MyWeb.ExecWB(Exec.OLECMDID_OPTICAL_ZOOM, execOpt.OLECMDEXECOPT_PROMPTUSER, 60, IntPtr.Zero)
                Catch ex As Exception
                    MsgBox(ex.Message)
                End Try
            End If
    
            If WebBrowser1.Width > Math.Round(pswaWidthInt / 2.23) And WebBrowser1.Width < Math.Round(pswaWidthInt / 1.89) Or WebBrowser1.Height > Math.Round(pswaHeightInt / 1.85) And WebBrowser1.Height < Math.Round(pswaHeightInt / 1.64) Then
                Try
                    Dim Res As Object = Nothing
                    Dim MyWeb As Object
                    MyWeb = Me.WebBrowser1.ActiveXInstance
                    MyWeb.ExecWB(Exec.OLECMDID_OPTICAL_ZOOM, execOpt.OLECMDEXECOPT_PROMPTUSER, 70, IntPtr.Zero)
                Catch ex As Exception
                    MsgBox(ex.Message)
                End Try
            End If
    
            If WebBrowser1.Width > Math.Round(pswaWidthInt / 1.89) And WebBrowser1.Width < Math.Round(pswaWidthInt / 1.6) Or WebBrowser1.Height > Math.Round(pswaHeightInt / 1.64) And WebBrowser1.Height < Math.Round(pswaHeightInt / 1.53) Then
                Try
                    Dim Res As Object = Nothing
                    Dim MyWeb As Object
                    MyWeb = Me.WebBrowser1.ActiveXInstance
                    MyWeb.ExecWB(Exec.OLECMDID_OPTICAL_ZOOM, execOpt.OLECMDEXECOPT_PROMPTUSER, 80, IntPtr.Zero)
                Catch ex As Exception
                    MsgBox(ex.Message)
                End Try
            End If
    
            If WebBrowser1.Width > Math.Round(pswaWidthInt / 1.6) And WebBrowser1.Width < Math.Round(pswaWidthInt / 1.2) Or WebBrowser1.Height > Math.Round(pswaHeightInt / 1.53) And WebBrowser1.Height < Math.Round(pswaHeightInt / 1.16) Then
                Try
                    Dim Res As Object = Nothing
                    Dim MyWeb As Object
                    MyWeb = Me.WebBrowser1.ActiveXInstance
                    MyWeb.ExecWB(Exec.OLECMDID_OPTICAL_ZOOM, execOpt.OLECMDEXECOPT_PROMPTUSER, 90, IntPtr.Zero)
                Catch ex As Exception
                    MsgBox(ex.Message)
                End Try
            End If
    
            If WebBrowser1.Width > Math.Round(pswaWidthInt / 1.2) AndAlso WebBrowser1.Height > Math.Round(pswaHeightInt / 1.16) Then
                Try
                    Dim Res As Object = Nothing
                    Dim MyWeb As Object
                    MyWeb = Me.WebBrowser1.ActiveXInstance
                    MyWeb.ExecWB(Exec.OLECMDID_OPTICAL_ZOOM, execOpt.OLECMDEXECOPT_PROMPTUSER, 100, IntPtr.Zero)
                Catch ex As Exception
                    MsgBox(ex.Message)
                End Try
            End If
        End Sub
    
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
    
        WebBrowser1.Navigate(TextBox1.Text)
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        WebBrowser1.GoBack()
    End Sub
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        WebBrowser1.GoForward()
    End Sub
    
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        WebBrowser1.Refresh()
    End Sub
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        WebBrowser1.Navigate("http://www.google.pt")
    End Sub
        End Class
      

Комментарии:

1. Спасибо, но я не могу прокручивать вниз и вверх?

2. @Jossez поместил webbrowser элемент управления в TabControl

Ответ №2:

На первой вкладке TabControls задайте текст в качестве URL-адреса (или пробелов) и дополните его дополнительными пробелами, чтобы соответствовать ширине формы. Таким образом, она выглядит как адресная строка вашего браузера (если вы этого хотите).

Также убедитесь, что вы установили «Модификаторы» общедоступными для всех элементов управления, которыми вы хотите управлять с помощью кода, внешнего по отношению к форме.

Самое главное: не используйте «My.settings» в форме, если это не первая загруженная форма (основная загруженная форма или модуль). Всегда сохраняйте настройки в первой загруженной форме модуля вместе с «My.Settings.Save». Любая попытка сохранить настройки во что-либо, кроме основного модуля / формы, приводит к повреждению вашего «My.Settings» (что-то, что я узнал случайно, и потребовалось 3 месяца, чтобы устранить причину возникновения повреждения).