在 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 @   张志敏  阅读(3411)  评论(1编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示