- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用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
文档评论(0)