




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用AxWebBrowser的准备工具箱-添加/删除项-COM 组件-Microsoft Web 浏览器-对勾-确定 IE样的东西就上到工具箱上了,拖过来即可使用我们知道,C#创建基于Web页(Html)的AspC#应用程序,它使用Microsoft Internet Explorer(IE)实现页面的导航与浏览,对程序的导航控制通过IE自身提供的功能来实现,这个时候,导航控制实际上与程序代码是相对独立的,这表现在你不需要为此编制相应的代码也很难添加IE之外的其他控制。其实,不仅仅是C#应用程序能操作Web页,C#创建的基于桌面的Windows Application(窗体应用程序)也能操作Web页。不同的是,这种开发仅有C#基类支持是不够的,你还需要借助一种特殊的COM-ActiveX控件。基于桌面的Windows(窗体)应用程序显然,即便在基于桌面的Windows应用程序下,也有很多地方跟Web文件打交道。本地的Html文件,网络传输中的Html文件,等等。这些包含丰富图文信息的Web文件,有时候需要作为应用程序的一部分进行操作。虽然,C#丰富的基类对文件(当然也包括.Html格式的Web文件)的读写提供了大量的支持,对文件内容的显示也提供了丰富的控件(如Windows标准控件ListBox、Label等),然而,这种通常意义下的输出只能将文件显示为纯文本字符或二进制数据,还无法直接在Windows应用程序中原样显示Html界面样式而保持Web文件图文并茂、导航自如的优点。即便这样,C#名字空间Diagnostics还是提供了类Process以支持在应用程序中操作Web文件、实现Internet Explorer界面样式,以部分满足我们的需求。1、使用Process 类下面的讲解将借助实例来进行,并逐步扩充程序代码。为测试效果,请在Visual StudioC# IDE中构建VisualC#窗体应用程序WebPageInWindowsApplicaion。在窗体上添加按钮buttonStart,添加文本框textBoxUrl ,导入名字空间System.Diagnostics(using System.Diagnostics;),在按钮buttonStart的Click事件中添加以下代码: private void Start_Click(object sender, System.EventArgs e) Process p=new Process();/实例化进程对象 string url=textBoxUrl.Text.Trim();/获取输入的Url /StartInfo用于设置启动进程所需参数 p.StartInfo.FileName=iexplore.exe;/设置要启动的应用程序或文档 p.StartInfo.Arguments=url;/设置启动所需命令行参数 p.Start();/将进程与Process组件关联并启动 代码很简单,每行后的注释足够可以解释清楚了。需要注意的是,在使用Process.Start()方法启动该进程前至少必须设置FileName文件名属性,以指定提供支持的目标应用程序或文档。试着在文本框中输入/pub/disp/Column?columnID=287(当然,你也可以在程序中硬编码文本框内容,无论怎样,你需要确保该URL的有效性),单击Start按钮,IE浏览器将打开,Web页面被正确显示。不过,你很容易就能看到,打开的IE浏览器并不包含在应用程序(主)窗体中,而是重新载入了IE浏览器,就象你通常在IE地址栏里输入URL浏览页面一样;的确,在这里,IE浏览器被作为一个新的、单独的窗口打开,这以后就不再与应用程序关联,或者说,不再受应用程序的控制了。一般地,这不是我们所需要的。要真正让Web页与应用程序融为一体,一种可行的解决方法是使用ActiveX Control-WebBrowser控件。2、ActiveX 技术很明显,即便C#富含大量类库,但仍然不能完成所有的任务,或者说,不能很轻松地完成所有任务。很长一段时间里,由Windows API、COM(COM+)、ActiveX Control提供的许多功能在C#中将得到支持,使用它们在一定程度上为编程提供简化。其中,ActiveX是Microsoft提出的一组使用COM(Component Object Model,组件对象模型)使软件部件在特定环境中进行交互的技术集。它与具体的编程语言无关。作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。同时,ActiveX技术也被用于方便地创建普通的桌面应用程序。3、使用WebBrowser控件WebBrowser控件就是ActiveX Controls的一种,它是Mircosoft在C#出现之前提供的ActiveX控件,用来为应用程序增加浏览功能,具备这个功能的基础是该控件对应的Dll(Shdocvw.dll)文件是Internet Explorer 的一部分,所以它能够在安装了 Internet Explorer 的系统上提供支持。象其他ActiveX Control一样,Visual StudioC# IDE工具箱在默认情况下并不直接包含WebBrowser控件。不过,在应用程序中添加该控件很简单。在Visual StudioC# 开发环境下,在工具箱的Windows 窗体上点击鼠标右键,从弹出的上下文菜单中选择自定义工具箱,在随后出现的自定义工具箱对话框的com组件标签里选中Microsoft Web 浏览器,确定后,Iexplorer控件就会显示在工具箱中,它其实就是一个WebBrowser控件。这之后,象使用Windows标准控件一样,把Iexplorer控件拖入应用程序的窗体就可以了。Visual StuodC# IDE将自动生成所需要的部分COM代码,同时,C# windows应用程序也将自动添加AxSHDocVw及SHDocVx引用(你可以在应用程序解决方案管理器引用项下看到它们),分别对应于磁盘上的Interop.SHDocVw.dll和AxInterop.SHDocVw.dll文件(你可以在应用程序BinDebug目录下找到它们)。同时,代码也将自动创建 AxSHDocVw.AxWebBrowser 实例对象,并设置默认名称为axWebBrowser1(语句:private AxSHDocVw.AxWebBrowser axWebBrowser1)。(为引用简化名称,可导入名字空间using AxWebBrowwer)经过这些处理后,应用程序就已经成为WebBrowser控件的客户端了。WebBrowser控件能够浏览到任何指定位置的资源,包括本地文件系统、局域网上的文件系统及互联网所定位的资源。实际上,WebBrowser 控件定位到一个.Html 页,该页(隐式)调用 window.open 方法以打开一个新窗口。)、WebBrowser控件的事件WebBrowser控件包含丰富的事件,用来捕捉与控件相关的变化并作出反应。其中,BeforeNavigate 2事件在对指定对象(窗体或框架元素)导航前激活,这个特性常被用来作一些验证工作,比如对客户录入的Url地址作有效性检查,以转换不标准的Url地址,有意义的是,这样的验证转换工作是自动完成的。例如,如果你输入的Url为,在该事件中引用Url属性就可以自动将它转换为标准格式的Url,并自动将转换结果存入事件的URL参数中。事件代码为:private void axWebBrowser1_BeforeNavigate2(object sender, AxSHDocVw.DWebBrowserEvents2_BeforeNavigate2Event e) textBoxUrl.Text=e.uRL.ToString();/textBoxUrl是文本框名,用来反映效果 另外,WebBrowser控件的DocumentComplete事件在文档载入及初始化完成时激活;NewWindow事件在创建新窗体时被激活,等等。)、WebBrowser控件的方法同时,WebBrowser控件也包含大量方法,可以完成导航中的大部分操作。其中,GoBack()从历史记录表回退一个单元,GoForward()从历史记录表前进一个单元,GoHome() 定位到当前主页面或开始页,Stop()取消正进行的导航请求(包括下载操作)并停止任何动态页面元素(比如背景音乐)、Refresh ()可以刷新页面等等。这些只是WebBrowser控件所支持方法的一部分,即便是这样,也可以看出,这些方法使你可以建立与Microsoft Internet Explorer功能类似的应用程序,你只需要做很少的工作,或许仅仅是响应按钮的事件。例如,在你的应用程序中添加一个回退按钮 buttonBack,其Click事件代码为:private void buttonBack_Click(object sender, System.EventArgs e) axWebBrowser1.GoBack();/axWebBrowser1是WebBrowser实例控件名 这样,类似IE浏览器的后退功能就实现了,你基本上没有做什么工作。然而,在WebBrowser控件的所有方法中,Navigate()才是极主要的一个方法,真正的导航是依靠调用它来实现的。Navigate()方法能够导航到通过url指定的资源或者通过一个完整路径给出的文件路径(本地的或者网络上的文件)。方法的定义为:object.Navigate( url As String, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant) 其中,参数url是必须的的字符串表达式,用于定位要访问的资源,它可以是一个URL地址,也可以是一个完整的路径文件名,或者通过UNC(Universal Naming Convention)定位的资源。其余参数均为可选参数,其中Flags标识指示是否将资源添加到历史记录、是否从高速缓冲中读写资源数据以及是否在一个新的窗口中显示资源文件;而TagetFrameName主要用于带框架的URL在浏览器窗口中的显示,其可能的选项为:Blank(在新的空白窗口中显示)、PARENT(在当前窗口的父窗口显示)、SELF(在当前窗口显示)、TOP(在当前窗口主体装载链接)等;PostData参数用于指定以Post发送的、随Http请求的的数据;Header则包含Http请求的头信息。需要注意的是,作为ActiveX Control,WebBrowser控件提供之初并不针对C#架构,所以并不能保证它与所有支持C#的开发语言完全无缝集成。比如,VisualC#语言是不支持可选参数的,因此,在Visual C#开发的Windows Application中调用WebBrowser控件的Navigate()方法时,所有的参数均需要明确地给出来,并且,这些可选参数均是引用类型(ref)。继续扩展上面的例子,添加buttonGo按钮,输入Click事件代码为:private void buttonGo_Click(object sender, System.EventArgs e) string url=comboBoxUrl.Text;/取Url值 object o=null;/定义空的对象引用 axWebBrowser1.Navigate(url,ref o,ref o,ref o,ref o);/浏览到指定资源 单击Go按钮,应用程序窗体中输出正确的资源,Web页被正确显示。前面说了,Navigate()方法也能够导航到指定的文件,接着上面的应用程序,在窗体上添加buttonFile按钮,其Click事件代码为:private void buttonFile_Click(object sender, System.EventArgs e) OpenFileDialog ofd=new OpenFileDialog();/实例化打开文件对话框对象 if(ofd.ShowDialog()=DialogResult.OK) Object o = null;/设置空对象 axWebBrowser1.Navigate(ofd.FileName, ref o, ref o, ref o, ref o);/浏览指定文件 这样,在通过文件打开对话框指定文件后,WebBrowser控件就可以导航到文件对应的资源。除Navigate()方法外,WebBrowser控件还有许多重要的方法,比如,ExecWB()方法在OLE对象上执行命令并通过IOleCommandTarget 接口返回命令执行的状态。)、使用WebBrowser控件开发浏览器应用程序从上面我们知道,使用WebBrowser控件的Navigate方法能够通知浏览器定位到指定的资源。这甚至能支持你开发出具有完整功能的浏览器应用程序。这时,你的应用程序中或许需要添加其他windows标准控件:主菜单、用于导航控制的按钮、用于提示的状态
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 时间序列ARIMA模型课件
- 贺卡手工课课件
- 时间像小马车课件
- 2025版企业特殊岗位劳动合同范本
- 2025版智能工厂承包劳务服务管理协议
- 二零二五年度地质灾害防治土石方工程分包协议
- 二零二五版教育设施场地租赁合同
- 2025版股权整体转让合同范本:企业股权交易全流程指南
- 2025版车辆质押借款合同:汽车质押贷款协议
- 2025版运输合同履行监督与服务协议书
- 2025年甘肃社会化工会工作者招聘考试(公共基础知识)模拟试题及答案
- 《心系国防 强国有我》 课件-2024-2025学年高一上学期开学第一课国防教育主题班会
- 污水处理厂安全风险清单
- 营造林工试题库技师1
- 特种设备安全管理制度特种设备安全操作规程
- 连续安全技术交底8篇-1
- 2022年高校教师资格证(高校教师职业道德)考试题库高分300题带解析答案(安徽省专用)
- 口腔科超声波洁牙知情同意书
- 公安派出所优质建筑外观形象设计基础规范
- C型钢检验报告
- 甲状腺腺瘤教学查房课件
评论
0/150
提交评论