说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

自己的IE——用VB制作浏览器

HTML文档下载 WORD文档下载 PDF文档下载
自己的IE——用VB制作浏览器

上海 钱可栋

  
  程序的主角是一个ActiveX控件:WebBrowser。当然,缺省状态下VB的工具箱中并没
有它,我们得手工加入,方法是:右击工具箱,在出现的快捷菜单中选择“部件...”,
确保在弹出的对话框中选中“控件”标签,找到Microsoft Internet Controls,在它前
面的小框中打钩,然后确定。此时你会发现工具箱中多了两个小图标,其中,地球图标代
表的控件正是我们需要的WebBrowser。
  由于许多人对WebBrowser控件不是很熟悉,VB的帮助中也没有有关它的内容(反正
我没有找到),因此有必要介绍一下它的属性、方法和事件,限于篇幅,我们只涉及程
序中用到的:
  属性:LocationURL 返回控件显示WEB页面的URL。
  方法:Navigate 转移到指定的URL或打开指定HTML文件。
  事件:1.DownloadBegin 下载操作开时触发。
  2.DownloadComplete 下载操作完成、终止或失败时触发。
  3.ProgressChange WebBrowser控件跟踪下载操作的过程,并定期触发此事件。
其语法为:Sub WebBrowser_ProgressChange (ByVal Progress As Long, ByVal
ProgressMax As Long)。Progress变元是当前已下载的数据总量,ProgressMax变元
是将要下载的数据总量。
  4.TitleChange 当前文档标题改变时触发
  除了WebBrowser控件外,程序还需要一个Label控件:Label1;一个ComboBox控件:
combo1,用来显示URL地址;一个StatusBar控件:StatusBar1;一个ProgressBar控件:
ProgressBar1,用来显示下载进度(StatusBar控件和ProgressBar控件是ActiveX控件
Microsoft Windows Common Controls5.0的成员,加入工具箱的方法同WebBrowser控件),
这些控件的属性值都用缺省值。
  以下是程序清单:
  Option Explicit
  
  Private Sub Form_Load()
  Me.Caption =“My Explorer”
  Label1.Caption = “URL”
  Combo1.Text = “”
  Combo1.Top = Label1.Height
  Combo1.Left = 0
  WebBrowser1.Top = Combo1.Top + Combo1.Height
  WebBrowser1.Left = 0
  Form_Resize
  StatusBar1.Style = sbrSimple
  ProgressBar1.ZOrder
  End Sub
  
  Private Sub Form_Resize()
  On Error GoTo a
  Combo1.Width = Form1.Width - 100
  WebBrowser1.Width = Combo1.Width
  WebBrowser1.Height = Form1.Height - Combo1.Height - 1000
  ProgressBar1.Top = Me.Height - StatusBar1.Height - 330
  ProgressBar1.Left = 0.25 * StatusBar1.Width
  ProgressBar1.Width = 0.75 * Me.Width - 250
  a:
  End Sub
  
  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 WebBrowser1_DownloadBegin()
  `下载开始时状态栏显示“Now Linking...”
  StatusBar1.SimpleText = “Now Linking...”
  End Sub
  
  Private Sub WebBrowser1_DownloadComplete()
  `下载完成时状态栏显示“Link Finished”
  StatusBar1.SimpleText = “Link Finished”
  ProgressBar1.Value = 0
  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

ASP.NET如何从URL或route数据中得到controller类型和action信息 Discuz X论坛数据表结构:论坛主题数据表pre_forum_thread Discuz X论坛数据表结构:论坛帖子数据表pre_forum_post jQuery UI 消息框(message box)的使用 kmp算法中的求Next()函数的算法 ASP.NET MVC3 如何将DataTable绑定到Html.DropDownList PHP调用COM组件 农行网上银行支付接口:无法读取商户端配置文件 农行网上银行支付接口:商户代理卖方挂单成交功能测试 Windows Phone 7 实现简单的GPS定位器 C#如何删除string中的Html标记 ImageStone图像处理C++类库 jQuery Mobile 开发入门手册--概述 jQuery Mobile 开发入门手册--技术理论 jQuery Mobile 开发入门手册--组件 SMTP/POP3收发邮件的C#类库SmtPop.Net 用C#编写的Telnet开源类库 Visual Studio C#创建Windows服务(Windows Service) C#取得Windows服务列表 C#编程自动安装Windows服务 C#安装/删除 .NET Windows服务 C#启动、停止、重启Windows服务 jQuery实现Ajax提交form表单的简单方法 字符串String与枚举Enum之间的转换[C#] Javascript统计DOM元素里文字的行数 C#从Web网站下载文件 C#得到区域名称列表 C#合并多个PrintDocument WpWidgetLibrary - Windows Phone的HTML部件库(Widgets) 让你不再害怕C语言指针 C语言概述-C语言教程 用datagrid问题,总是提示列键信息不足或不正确,更新影响多行, 大家来讨论一下C# 和Java ,回贴均有分!! 请问一个sql语句写法问题,100分!!!在线等待 谁能给我一点写网站制作方面投标书或者详细方案 wsad5 怎么连上ORACLE数据库啊 并非复古——关于微内核模式ASP开发框架的讨论,欢迎高手进入! 那有BOCHS的中文帮助 我愿送500分求解JAVA问题!!!!!! 关于frame里面的参数传递问题,火急 find函数的问题,请各位老兄帮忙 请问这个链接怎么写? 用xsl将xml转成html提示.... 为什么看不到邻近计算机? 关于浏览器的自定义工具栏! 无法打开web项目bbs 请告知可以下载Domino数据库安装文件和Lotus Notes的网址!在线等 我的ie6无法加载applet,请教解决方法! 如何用ASP写关闭当前窗体的代码? 用xsl将xml转成html提示.... sqlserver数据库怎么和应用程序一起打包? 一个困惑的问题,高手和有耐心的人请进! 实现要求是:对一个用来保存文件的richtext域如何创建一个代理,以实现每天固定一个时间从服务器/本地的一个固定目录下获取一个更新的文 关于数据库导入导出的问题 请问:提交表单后,把参数传到一个新弹出的页面,要求此页面没有“标准按钮”“工具栏”“地址栏”而且固定窗口大小,且不能最大化,如何 求助于高手:Tab Control控件如何使用? 组件通过鼠标移动 求助 sniffer 紧急!帮忙啊!如何获得使用<div class="test" id="mydiv"> ...</div>定义的对象 哪儿找ORACLE8i 9i for x86solaris? 在IIS中,url转发如何隐藏真实地址? 原来对应Access数据库的水晶报表现在如何转换成对应sql server 的?Access数据库已经转换成Sql server的 找到了工作,不过得告别DELPHI一段时间了本来想在非技术区发这个,但是我在这里得到的帮助最多所以...... 在web页面中如何使用脚本判断当前是否有键被按下? 哈希表 访问CLOB字段问题 下拉列表的查询 一台电脑安装的winxp系统,当我打开“任务管理器”时,只显示所调用的进程及结束进程的按钮,其它的应用程序及性能界面都不能出现,最上 Repeater模板列:如何在返回字段长度过长时,将其截短 谁能帮我做一个祝贺教师节日的卡通图片 intaweb 的session 超时错误捕捉问题 大家帮忙看一下C++primer上面的这个程序: 简单SQL命令问题。。。。 蓝天,ChangeCell事件在WIN2000下正常,在WIN98下出现非法操作错误??? 请问:使用database对象打开有密码的Access数据库问题? 各位高手,请进来看看吧!关于dbexpress的问题 请各位XDJM帮我想个书店的名字,是我弟弟要在我们县开个主要经营考试图书的书店,请大家想个名字,不胜感激 知道PHP的crypt()生成的密文,如果用JAVA校验明文是否正确? 如何分割图片? 关于一个窗体事件的小问题,分不多,100而已 无法备份数据库???事不是我做这个操作弄坏数据库了?? office xp只装frontpage,在打开frontpage 时有总有错误的问题? 为什么老外称呼'叔叔,伯伯,舅舅'都是用'uncle'不知道是他们辈分都搞不清楚了?还是老外国家没有伯伯,舅舅的概念?都称呼为UNCLE吗?还有称呼'阿姨','舅妈','姑姑'也都是用'aunt'吧?还有称呼'姐姐' 舅舅的 英文怎么说 不是指uncle我不是指uncle类似于do do的发音 如何利用v-t图像求速度变化量 这是什么蛙呀 《左传》是以记人为中心还是以记事为中心? 生物学家是什么? 叔叔和伯伯是怎么区分的. 兄弟同心下一句是什么 生物学家是谁要是20世纪的 线性代数极大无关组,这题是不是有问题啊 家蚕的发育过程称为什么发育 温州“金改”或将上马市政债等多项措施叙利亚发电系统遭袭击全国停电 被指反安倍称在预算委员会上很累 自比乔布斯南京大学两位院士候选人就论文是否造假男孩被母亲男友砍断右手 其母:只因拒汪洋:今年粮食丰收基本定局 生产将实美国共和党遭保守派绑架 民主党有望夺水利部:今年解决6343万农村人口饮温州民资设立民营银行方案已上报北大回应不续聘夏业良:所谓\"政治迫松下半导体部门将大幅裁员关注回踩 中线有机会2015年我省最低工资标准将达180食品药品拟设“黑名单”制度明年将全面清理取消违规收费天津从今日零时起实施限购嫦娥玉兔“深情互望”微声音北京台呼吁全国电视台抵制郭德纲女子喝多了闹事在派出所内打伤民警让居民跑一趟就把事办成博尔特访阿根廷出奇招80米竞速击败公
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘