2.用WebBrowser控件设计浏览器
用WebBrowser控件设计浏览器的方法相对前面的方法而言,具 体操作要多一点,因为对应的每个控件都要设置属性并编写相应的 代码,从而编程量也要相对地大一些。下面来具体说明其方法和步 骤。
(1)新建一个项目并打开一个新的窗体Form1;
(2)用鼠标右键单击工具箱以添加新的部件Microsoft Common Dialog Controls、Microsoft Windows Common Controls 5.0和 Microsoft Internet Controls;
(3)在窗体Form1中添加一个Toolbar控件Toolbar1,然后打开 Toolbar1控件的Properties(属性)页,在Button(按钮)选项卡 中单击Insert Button按钮,增加Back(向后)、Forward(向 前)、Stop(停止)、Refresh(刷新)、Home(归位)、Search (搜索)、Open(打开)、Navigate(导航)、Exit(退出)等常 用命令按钮;
(4)添加一个ImageList控件ImageList1到窗体Form1中,打开 Imagelist1控件的Properties(属性)页,在Images(图象)选项 卡中单击Insert Picture按钮,输入一些对应按钮的合适的图标, 然后到tbToolbar控件的Properties(属性)页中设置General选项 卡中的ImageList值与Buttons选项卡中的Image值,使上述命令按 钮与合适的图标相对应;
(5)从工具箱中选出CommonDialog(通用对话框)控件添加到 浏览器窗体中,将其命名为CommonDialog1,为编写与Open按钮相 应的事件代码作准备;
(6)添加一个Label控件Label1到窗体Form1中,将其Caption值 设置为“地址(URL):”,再在此控件附近合适的位置添加一个 ComboBox控件Combo1,以便生成Web地址的下拉列表框;
(7)添加一个WebBrowser控件WebBrowser1到窗体Form1中,将 其调整到合适的位置上;
(8)添加一个Timer控件Timer1,将其Enabled与Interval值分 别设置为False和5;
(9)在Form1窗体的属性窗口中将MDIChild属性值设置为 False;
(10)在该项目的属性设置窗口中的启动对象设置为Form1窗 体;
(11)为对应窗体和每个控件等对象编写相应的事件程序代码, 具体可参照前面的程序代码,只要更换一下相应的窗体或控件等对 象的名称,其他的基本相同,在此就不赘述了。
无论用Visual Basic 5.0现成的浏览器(Browser)窗体还是用 WebBrowser控件来设计简单的Web浏览器都比较容易。就两种方法 相比较而言,前者因浏览器(Browser)窗体本身集成了一些基本的 控件,并且相应的代码已经写好,要做的只是为添加的控件或菜单 等编写代码,所以显得较为简单些;而后者因每一个窗体或控件等 对象都要进行选择、添加、设计、编写代码等,所以相对较为复杂 些。无论怎样都能在此基础上进行扩充,从而设计出较为高级的浏 览器来。PCC
Private Sub Combo1_Click()
WebBrowser1.Navigate Combo1.Text
End Sub
Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim I As Long
Dim existed As Boolean
If KeyCode = 13 Then
If Left(Combo1.Text, 7) <> "http://" Then
Combo1.Text = "http://" + Combo1.Text
End If
WebBrowser1.Navigate Combo1.Text
For I = 0 To Combo1.ListCount - 1
If Combo1.List(I) = Combo1.Text Then
existed = True
Exit For
Else
existed = False
End If
Next
If Not existed Then
Combo1.AddItem (Combo1.Text)
End If
End If
End Sub
Private Sub Command1_Click()
WebBrowser1.GoBack
End Sub
Private Sub Command2_Click()
WebBrowser1.GoForward
End Sub
Private Sub Form_Load()
Me.Caption = "My Explorer By Xyuan"
Label1.Caption = "Web 地址:"
Combo1.Text = "http://iamxuyuan.go.nease.net"
ProgressBar1.ZOrder
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As ComctlLib.Button)
Select Case Button.Key
Case "Exit"
Unload Me
Case "Back"
WebBrowser1.GoBack
Case "Forward"
WebBrowser1.GoForward
Case "Refresh"
WebBrowser1.Refresh
End Select
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
ProgressBar1.Value = 0
End Sub
Private Sub WebBrowser1_DownloadBegin()
StatusBar1.SimpleText = "现在从" & Combo1.Text & "下载"
End Sub
Private Sub WebBrowser1_DownloadComplete()
StatusBar1.SimpleText = "下载完毕"
ProgressBar1.Value = 0
Me.Caption = WebBrowser1.LocationName
End Sub
Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)
If ProgressMax = 0 Then Exit Sub
ProgressBar1.Max = ProgressMax
If Progress <> -1 And Progress <= ProgressMax Then
ProgressBar1.Value = Progress
End If
End Sub
Private Sub WebBrowser1_TitleChange(ByVal Text As String)
Combo1.Text = WebBrowser1.LocationURL
End Sub