#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 месяца, чтобы устранить причину возникновения повреждения).