用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