CHANGZHOU INSTITUTE OF TECHNOLOGY
计算机信息工程学院
课 程 设 计 说 明 书
课程名称: 程序
实训
专 业: 软件工程
班 级: 08 软件
学 号: 08030310 08030312
姓 名: 李 想 林 明
2011年 1 月
提纲
1. 项目背景
2. 目的、意义和研究现状分析
3. 主要解决的问
4. 小组成员及分工情况
5. 主要开发环境与工具、技术路线和解决
6. 系统分析与设计(包括数据库、界面设计、主要模块算法程序流程图(或N-S图))
7. 系统编码
8. 调试与测试
9. 系统现状分析与总结(包括组长对整个小组评价及成员评价)
10. 实训体会
11. 参考文献
1. 项目背景
随着时代的发展,计算机已经不是前些年仅仅是少数人才可以运用/使用的局面,取而代之的是许许多多的家庭有了计算机。计算机的普遍也带动了网络的不断发展,网页浏览器作为上网的所必需的软件之一,已经得到了广泛地应用。在IE独霸一方的背景下,国内外各式各样的浏览器软件都如雨后春笋般孕育而生。网页浏览器的开发与应用更是成为了计算机领域近年来的一大热点。
本文围绕着浏览器的编程与开发,讲述了在Visual Basic .NET中进行浏览器开发的一些技术和笔者的自己的心得,着重讲解了课程设计中所实现的一个Web浏览器程序。
2. 目的、意义和研究现状分析
2.1.目的和意义
随着互联网在世界范围的广泛应用,网络浏览器便是信息交流中必不可少的工具。本题目要求同学在熟练掌握VB.NET下有关网络编程理论的基础上,实现一个能够浏览网页的浏览器。希望通过制作简易Web浏览器来掌握VB.NET有关内容的使用方法
2.2. 研究现状分析
在IE独霸一方的背景下,国内外各式各样的浏览器软件都如雨后春笋般孕育而生。网页浏览器的开发与应用更是成为了计算机领域近年来的一大热点。国内外的各种浏览器都大同小异,但其功能有时过于复杂,很多功能并非为用户所常用。很多商业浏览器上广告太多,往往影响了用户的正常使用,故本次课程设计做一个简单实用的浏览器。
3.主要解决的问题
设计一个Web浏览器,其主要功能是浏览网页。浏览网页的同时,用户需要知道自己的浏览记录,及保存自己喜欢的网站,以便日后的再次浏览。故本设计的主要解决的问题有:
1.用户能够对当前网页进行保存、设置、打印等操作
2.用户能够对网页进行收藏(添加收藏夹,整理收藏夹)
3.用户能够能够进行主页设置
4.用户可以查看自己的浏览历史,并可以将其删除
5.浏览器能够分页浏览
4.小组成员及分工情况
本次课程设计成员有:李想,林明(组长)
本WEB浏览器为简单的分页浏览器,其主界面中有:前进 后退 地址栏 停止 刷新 新建 主页等(地址栏保存最近访问的 10 条记录)
菜单栏功能:
文件(新建 打开 另存为 打印 打印预览 页面设置 属性 退出 )
编辑(复制 粘贴 全选)
查看(转到 停止 刷新)
收藏(添加收藏夹 整理收藏夹等)
工具(主页设定 浏览历史)
帮助(关于浏览器)
分工情况:
李想:收藏夹部分,及最终系统的测试
林明:其他部分
5.主要开发环境与工具、技术路线和解决方案
5.1主要开发环境与工具
软件应工作在Windows系统上,建议使用Windows2000操作系统的计算机,另外配备Access2000数据库和Visual Studio2005。
5.2技术路线和解决方案
设计一个IE浏览器,其主要功能是浏览网页。为了实现浏览网页的功能,我添加一个控件:WebBrowser。这个控件的Navigate方法可以打开指定的网页,从而实现了浏览网页的目的。在工具栏添加一个ToolStripComboBox1作地址栏,定义它的Click事件和KeyPress事件,开始搜网。我直接用ToolStripComboBox1.AddItem ( string ),来保存网址。输入的网址会放到数据库中同时判断该网址是否已存在等问题,存放网址的数据库更新之后会把表中的网址添加到ToolStripComboBox1中。
主界面从上到下几次为菜单栏、工具栏、tabcontrol控件(在里面添加webbrowser控件用于分页浏览)、状态栏。
接下来我就开始设计菜单的功能,对于“文件”菜单,其中“新建”和“关闭”菜单就利用窗体的相关方法就可实现。“另存为” “ 打印” “ 打印预览” “页面设置” “属性”可以通过WebBrowser控件中的相关方法实现。比较麻烦的是“打开”菜单项,我添加了一个窗体作为“打开”对话框,然后编写相应的程序。
对于“编辑”菜单的各项功能,可以调用WebBrowser控件的ExecCommand方法,实现相应功能。对于“查看”菜单的各项功能,WebBrowser也有相应的方法实现其功能。“收藏”是最不好做的,要做到这步,需用数据库。我制作了一个窗体,并在其中写相应代码来实现功能。“工具”菜单中主要是“主页设定”和“浏览历史”功能,为它们分别设计相应的窗体,其中“主页设定“会用到注册表的修改。
工具栏中主要是对当前网页的一些操作,菜单栏中都有相应的功能。
tabcontrol控件里面添加webbrowser控件用于分页浏览,webbrowser控件中的NewWindow事件是进行分页浏览的关键。
状态栏中主要显示当前网页的状态(通过StatusTextChanged事件来获得),当前时间,当前网页的进度(通过ProgressChanged事件获得)
6.系统分析与设计
(包括数据库、界面设计、主要模块算法程序流程图(或N-S图))
数据库(Web浏览器.mdb,一个access数据库中有多张表):
表“最近记录”用来存放最近输入的十条网址。字段有:地址(text)。
表“浏览历史”用来存放浏览过的网址及其标题。字段有:标题(text),地址(text)。
表“收藏夹名”用来存放已经新建的收藏夹的名字。字段有:NAME(text)。
其他的表是由用户动态创建的,每新建一个收藏夹就会动态的创建相应的表。表名存放在表“收藏夹名”中,这些表的字段有:标题(text),地址(text)。
界面设计
Form1(主界面)
该界面主要用于对当前网页及浏览器进行一些操作。
Form2(打开界面)
该界面是用户点击菜单:文件—打开时产生的,用户可以在其textbox中输入网址,也可通过点击浏览来查看自己电脑中的网址
Form3(收藏夹界面)
用户需要添加或整理收藏夹的时候会弹出该界面,左边的listbox中会显示已经有的收藏夹的名字,右边的listview中则显示当前收藏夹中的网站信息(标题和网址),当在listview中选中某网站时,下面的两个textbox中会同时显示其标题和网址。各个按钮分别实现相应的功能。
Form4(主页设置界面)
在该界面下的textbox中输入你想要设定的主页的网址,可以修改主页,是通过修改注册表来实现的。
Form5(关于界面)
该界面显示的是关于本系统的开发及作者的一些信息。
Form6(历史记录界面)
该界面中的listview中会显示用户浏览网页的历史。按下相应的按钮可以清除记录。
由于本系统为Web浏览器,其主要模块算法程序不方便用程序流程图(或N-S图)画出,故在此省略。
7.系统编码
Form1:
Imports System.ComponentModel
Imports System.Data.OleDb
Imports System.Windows.Forms
Public Class Form1
Dim change As Boolean
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'把数据库中最近记录表里的数据写到ToolStripComboBox1中
Dim mybmb As BindingManagerBase
Dim mycon As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Web浏览器.mdb")
Dim mycom As New OleDbCommand
Dim myda As New OleDbDataAdapter
Dim MyDs As New DataSet
mycon.Open()
mycom.Connection = mycon
mycom.CommandText = "select * from 最近记录"
myda.SelectCommand = mycom
myda.Fill(MyDs, "最近记录")
mybmb = Me.BindingContext(MyDs, "最近记录")
Dim i As Integer
If mybmb.Count > 0 Then
For i = mybmb.Count - 1 To 0 Step -1
ToolStripComboBox1.Items.Add(MyDs.Tables("最近记录").Rows(i).Item("地址").ToString)
Next
End If
mycon.Close()
TabControl1.Anchor = AnchorStyles.Bottom Or AnchorStyles.Top Or AnchorStyles.Left Or AnchorStyles.Right '定位TabControl1控件与窗体的上、下、左、右边框保持一致
Dim mypage As New TabPage
Dim tempBrowser As New WebBrowser
AddHandler tempBrowser.ProgressChanged, New WebBrowserProgressChangedEventHandler(AddressOf tempBrowser_ProgressChanged) '为WebBrowser控件添加ProgressChanged事件
AddHandler tempBrowser.Navigated, New WebBrowserNavigatedEventHandler(AddressOf tempBrowser_Navigated) '为WebBrowser控件添加Navigated事件
AddHandler tempBrowser.NewWindow, New CancelEventHandler(AddressOf tempBrowser_NewWindow) '为WebBrowser控件添加NewWindow事件
AddHandler tempBrowser.StatusTextChanged, New EventHandler(AddressOf tempBrowser_StatusTextChanged) '为WebBrowser控件添加StatusTextChanged事件
tempBrowser.Dock = DockStyle.Fill '使控件完全填充到窗体中
tempBrowser.GoHome()
mypage.Controls.Add(tempBrowser)
TabControl1.TabPages.Add(mypage)
Timer1.Enabled = True
End Sub
'''''''''''''''''''''''''''''临时浏览器事件'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'临时浏览器定向完毕
Private Sub tempBrowser_Navigated(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatedEventArgs)
ToolStripComboBox1.Text = getCurrentBrowser().Url.ToString().Trim
record(getCurrentBrowser().DocumentTitle.Trim, getCurrentBrowser().Url.ToString.Trim) '把刚浏览的网页写到数据库中
End Sub
'临时浏览器产生新窗体事件
Private Sub tempBrowser_NewWindow(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs)
' e.Cancel = True
Dim mybrowser As WebBrowser = CType(sender, WebBrowser) '获取触发tempBrowser_NewWindow事件的浏览器
Dim mypage As TabPage = CType(mybrowser.Parent, TabPage) '获取触发tempBrowser_NewWindow事件的浏览器所在TabPage
Dim newurl As String = mybrowser.StatusText '通过StatusText属性获得新的ur
Dim TabPageTemp As TabPage = New TabPage '生成新的一页
Dim tempBrowser As WebBrowser = New WebBrowser '生成新的tempBrowser
tempBrowser.Navigate(newurl) '临时浏览器定向到新的url
tempBrowser.Dock = DockStyle.Fill
'为临时浏览器关联NewWindow等事件
AddHandler tempBrowser.ProgressChanged, New WebBrowserProgressChangedEventHandler(AddressOf tempBrowser_ProgressChanged)
AddHandler tempBrowser.Navigated, New WebBrowserNavigatedEventHandler(AddressOf tempBrowser_Navigated)
AddHandler tempBrowser.NewWindow, New CancelEventHandler(AddressOf tempBrowser_NewWindow)
AddHandler tempBrowser.StatusTextChanged, New EventHandler(AddressOf tempBrowser_StatusTextChanged)
TabPageTemp.Controls.Add(tempBrowser)
TabControl1.TabPages.Add(TabPageTemp)
TabControl1.SelectedTab = TabPageTemp
e.Cancel = True
End Sub
' 临时浏览器状态变化事件
Private Sub tempBrowser_StatusTextChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim myBrowser As WebBrowser = CType(sender, WebBrowser)
If myBrowser.Equals(getCurrentBrowser()) = False Then
Return
Else
ToolStripStatusLabel1.Text = myBrowser.StatusText
TabControl1.SelectedTab.Text = newstring(getCurrentBrowser().DocumentTitle.Trim)
End If
End Sub
'临时浏览器进度变化事件,在ProgressChanged事件中编写代码,用于实现当打开某个网站时,显示加载的进度,然后再重新调用setStatusButton方法设置按钮状态
Private Sub tempBrowser_ProgressChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs)
ToolStripProgressBar1.Visible = True '显示控件
ToolStripProgressBar1.Maximum = e.MaximumProgress '设置进度条的最大值
ToolStripProgressBar1.Value = e.CurrentProgress '设置进度条当前值
ToolStripProgressBar1.Visible = False '隐藏控件
setStatusButton() '设置按钮状态
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ToolStripStatusLabel2.Text = Date.Now
End Sub
Private Function newstring(ByVal oldstring As String) As String
Dim temp As String
If (oldstring.Length < 8) Then
temp = oldstring
Else
temp = oldstring.Substring(0, 8)
End If
Return temp
End Function
'新建一页并定向到指定address
Friend Sub newPage(ByVal address As String)
Dim mypage As TabPage = New TabPage()
Dim tempBrowser As WebBrowser = New WebBrowser()
'为临时浏览器关联NewWindow等事件
AddHandler tempBrowser.ProgressChanged, New WebBrowserProgressChangedEventHandler(AddressOf tempBrowser_ProgressChanged)
AddHandler tempBrowser.Navigated, New WebBrowserNavigatedEventHandler(AddressOf tempBrowser_Navigated)
AddHandler tempBrowser.NewWindow, New CancelEventHandler(AddressOf tempBrowser_NewWindow)
AddHandler tempBrowser.StatusTextChanged, New EventHandler(AddressOf tempBrowser_StatusTextChanged)
tempBrowser.Navigate(address) '临时浏览器定位到address
tempBrowser.Dock = DockStyle.Fill ''使控件完全填充到窗体中
mypage.Controls.Add(tempBrowser)
TabControl1.TabPages.Add(mypage)
change = False
TabControl1.SelectedTab = mypage '设置选中的选项卡
End Sub
'把浏览记录写到数据库里德浏览历史表中
Friend Sub record(ByVal title As String, ByVal address As String)
Dim mycon As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Web浏览器.mdb")
Dim mycom As New OleDbCommand
mycon.Open()
mycom.CommandText = "insert into 浏览历史" + " values('" + title + "','" + address + "')"
mycom.Connection = mycon
mycom.ExecuteNonQuery()
mycon.Close()
End Sub
'获取当前浏览器
Friend Function getCurrentBrowser() As WebBrowser
Dim currentBrowser As WebBrowser = TabControl1.SelectedTab.Controls(0)
Return currentBrowser
End Function
'设置"前进","后退"button的可用状态
Private Sub setStatusButton()
ToolStripBBack.Enabled = getCurrentBrowser().CanGoBack '通过控件的CanGoBack属性判断上一页是否可用,根据返回值设置后退按钮的Enabled属性
ToolStripBNext.Enabled = getCurrentBrowser().CanGoForward '通过控件的CanGoForward属性判断下一页是否可用,根据返回值设置前进按钮的Enabled属性
End Sub
'''''''''''''''''''''''''''''''''''''''''''菜单栏'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'文件菜单
Private Sub 新建ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 新建ToolStripMenuItem.Click
Dim newweb As New Form1
newweb.Show() '新建一个窗口
End Sub
Private Sub 打开ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 打开ToolStripMenuItem.Click
Form2.Show() '显示第二个窗体,即打开窗口
End Sub
Private Sub 另存为ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 另存为ToolStripMenuItem.Click
getCurrentBrowser().ShowSaveAsDialog() '调用WebBrowser控件的ShowSaveAsDialog方法打开保存窗体
End Sub
Private Sub 打印ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 打印ToolStripMenuItem.Click
getCurrentBrowser().ShowPrintDialog() '调用WebBrowser控件的ShowPrintDialog方法打开打印窗体
End Sub
Private Sub 打印预览ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 打印预览ToolStripMenuItem.Click
getCurrentBrowser().ShowPrintPreviewDialog() '调用WebBrowser控件的ShowPrintPreviewDialog方法打开打预览印窗体
End Sub
Private Sub 页面设置ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 页面设置ToolStripMenuItem.Click
getCurrentBrowser().ShowPageSetupDialog() '调用WebBrowser控件的ShowPageSetupDialog方法打开页面设置窗体
End Sub
Private Sub 属性ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 属性ToolStripMenuItem.Click
getCurrentBrowser().ShowPropertiesDialog() '调用WebBrowser控件的ShowPropertiesDialog方法打开属性窗体
End Sub
Private Sub 退出ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 退出ToolStripMenuItem.Click
Application.Exit()
End Sub
'编辑菜单
Private Sub 复制ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 复制ToolStripMenuItem.Click
getCurrentBrowser().Document.ExecCommand("Copy", False, Nothing)
End Sub
Private Sub 粘贴ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 粘贴ToolStripMenuItem.Click
getCurrentBrowser().Document.ExecCommand("Paste", False, Nothing)
End Sub
Private Sub 全选ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 全选ToolStripMenuItem.Click
getCurrentBrowser().Document.ExecCommand("selectall", False, Nothing)
End Sub
'查看菜单
Private Sub 主页ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 主页ToolStripMenuItem.Click
getCurrentBrowser().GoHome() '调用WebBrowser控件的GoHome方法实现定向到用户设置的主页
End Sub
Private Sub 后退ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 后退ToolStripMenuItem.Click
getCurrentBrowser().GoBack() '调用WebBrowser控件的GoBack方法返回到上一页
setStatusButton() '重新设置按钮状态
End Sub
Private Sub 前进ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 前进ToolStripMenuItem.Click
getCurrentBrowser().GoForward() '调用WebBrowser控件的GoForward方法打开下一页
setStatusButton()
End Sub
Private Sub 停止ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 停止ToolStripMenuItem.Click
getCurrentBrowser().Stop() '调用WebBrowser控件的Stop方法实现停止页面加载的功能
End Sub
Private Sub 刷新ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 刷新ToolStripMenuItem.Click
getCurrentBrowser().Refresh() '调用WebBrowser控件的Refresh方法实现刷新当前页面的功能
End Sub
'收藏菜单
Private Sub 添加收藏夹ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 添加收藏夹ToolStripMenuItem.Click
Form3.Close()
Form3.add = True
Form3.Show()
End Sub
Private Sub 整理收藏夹ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 整理收藏夹ToolStripMenuItem.Click
Form3.Close()
Form3.Show()
End Sub
'工具菜单
Private Sub 主页设定ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 主页设定ToolStripMenuItem.Click
Form4.Show() '显示主页设定窗口
End Sub
Private Sub 浏览历史ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 浏览历史ToolStripMenuItem.Click
Form6.Show() '显示浏览历史窗口
End Sub
'帮助菜单
Private Sub 关于浏览器ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 关于浏览器ToolStripMenuItem.Click
Form5.Show() '显示关于窗口
End Sub
''''''''''''''''''''''''''''''''''''''''''''''工具栏''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub ToolStripBBack_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripBBack.Click
getCurrentBrowser().GoBack()
setStatusButton()
End Sub
Private Sub ToolStripBNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripBNext.Click
getCurrentBrowser().GoForward()
setStatusButton()
End Sub
Private Sub ToolStripBGo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripBGo.Click
writerecord()
newPage(ToolStripComboBox1.Text) '调用newPage打开指定的网站
End Sub
'把最近记录写到数据库中,并更新ToolStripComboBox1里的内容
Private Sub writerecord()
Dim mybmb As BindingManagerBase
Dim mycon As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Web浏览器.mdb")
Dim mycmd, mycom As New OleDbCommand
Dim myda As New OleDbDataAdapter
Dim MyDs As New DataSet
mycmd.Connection = mycon
mycon.Open()
mycmd.CommandText = "delete from 最近记录where 地址='" + ToolStripComboBox1.Text + "'"
mycmd.ExecuteNonQuery()
mycmd.CommandText = "insert into 最近记录(地址) values('" + ToolStripComboBox1.Text + "')"
mycmd.ExecuteNonQuery()
mycom.Connection = mycon
mycom.CommandText = "select * from 最近记录"
myda.SelectCommand = mycom
myda.Fill(MyDs, "最近记录")
mybmb = Me.BindingContext(MyDs, "最近记录")
If mybmb.Count > 10 Then
mycmd.CommandText = "delete from 最近记录where 地址='" + MyDs.Tables("最近记录").Rows(0).Item("地址").ToString + "'"
mycmd.ExecuteNonQuery()
End If
MyDs.Clear()
myda.Fill(MyDs, "最近记录")
mybmb = Me.BindingContext(MyDs, "最近记录")
Dim i As Integer
If mybmb.Count > 0 Then
ToolStripComboBox1.Items.Clear()
For i = mybmb.Count - 1 To 0 Step -1
ToolStripComboBox1.Items.Add(MyDs.Tables("最近记录").Rows(i).Item("地址").ToString)
Next
End If
mycon.Close()
End Sub
Private Sub ToolStripBRefress_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripBRefress.Click
getCurrentBrowser().Refresh()
End Sub
Private Sub ToolStripBStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripBStop.Click
getCurrentBrowser().Stop()
End Sub
Private Sub ToolStripBHome_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripBHome.Click
getCurrentBrowser().GoHome()
End Sub
Private Sub ToolStripBNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripBNew.Click
newPage("about:blank") '调用newPage方法创建多页面空白页
End Sub
Private Sub ToolStripComboBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ToolStripComboBox1.KeyPress
If Asc(e.KeyChar) = System.Windows.Forms.Keys.Enter Then
writerecord()
If getCurrentBrowser().Url.ToString = "about:blank" Then
getCurrentBrowser().Navigate(ToolStripComboBox1.Text)
Else
newPage(ToolStripComboBox1.Text)
End If
End If
End Sub
'双击关闭当前页面
Private Sub TabControl1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.DoubleClick
If TabControl1.TabPages.Count <= 1 Then '仅仅剩下一个tab时返回
TabControl1.SelectedTab.Text = "空白页"
getCurrentBrowser().Navigate("about:blank")
Else
'先将tabControl1隐藏然后remove掉目标tab(如果不隐藏则出现闪烁,即系统自动调转到tabControl1的第一个tab然后跳会。)最后显示tabControl1。
TabControl1.Visible = False
Dim mybor As WebBrowser = getCurrentBrowser()
'释放资源
mybor.Dispose()
mybor.Controls.Clear()
TabControl1.TabPages.Remove(TabControl1.SelectedTab)
'重新设置当前tab
TabControl1.SelectedTab = TabControl1.TabPages(TabControl1.TabPages.Count - 1)
TabControl1.Visible = True
End If
End Sub
'切换tab
Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
If change Then
Dim mybor As WebBrowser = TabControl1.SelectedTab.Controls(0)
If mybor.Url.ToString <> "" Then
ToolStripComboBox1.Text = mybor.Url.ToString()
TabControl1.SelectedTab.Text = newstring(mybor.DocumentTitle)
ToolS