在 IE 中使用 Windows 窗体控件

 根据在线监测项目需要,要求实现在IE中运行SmartClient程序,而且需要能够和客户端的JavaScript进行交互。

在.NET SDK的文档中有相关内容描述如下:

  • IE 内的Windows窗体控件无需用户提示即可激活,它不要求注册,而且遵守公共语言运行库 (CLR) 代码访问安全性法则;
  • 在 IE 中几乎可以承载任何Windows窗体控件,该控件必须被安装到全局程序集缓存(GAC)或者与使用它的Web页面位于相同的虚拟目录中;
  • IIS虚拟目录的执行权限必须为纯脚本,否则将无法激活要使用的控件。

在 IE 中运行Windows窗体控件,需要如下步骤:

  1. 创建Windows窗体控件:
    新建Windows 控件库项目,和普通的控件库一样。
  2. 创建引用该Windows窗体控件Html文档:
    在Html文档中加入object标记,该标记引用Windows窗体控件例如:
    <object id="smartClient1" classid="http:ClientLib/SmartClientLib.dll#SmartClientLib.UserControl1"
            width="300" height="300">
        <param name="Text" value="Simple Control">
    </object>
    最重要的就是classid,包括指向控件库的相对路径和控件的完全限定名,与ActiveX的object标记不同的是Windows窗体控件不需要guid,在Windows窗体控件中,路径和完全限定类名将作为唯一的标识;也可以param标记,设置控件上的属性,name表示属性的名称,value表示属性的值;也可以通过JavaScript脚本访问控件的公开的属性、方法。
  3. 创建虚拟目录并设置权限:
    如上所述,设置网页所在虚拟目录的权限,并部署Windows窗体控件。
  4. 运行该控件:
    启动 IE 浏览网页,Windows窗体只能够在 IE 浏览器中运行,不能够在其它的浏览器中运行。

注意:如果用VS2005编译,出现窗体控件不能够正常显示,或者不能和客户端JavaScript脚本进行交互访问,将所有的Windows窗体控件代码复制到一个文件中,用.NET附带的命令行工具csc/vbc进行编译,则可以正常显示,不知是怎么回事。

posted @ 2007-06-02 18:23  张志敏  阅读(3404)  评论(1编辑  收藏  举报