在 IE 中使用 Windows 窗体控件
根据在线监测项目需要,要求实现在IE中运行SmartClient程序,而且需要能够和客户端的JavaScript进行交互。
在.NET SDK的文档中有相关内容描述如下:
- IE 内的Windows窗体控件无需用户提示即可激活,它不要求注册,而且遵守公共语言运行库 (CLR) 代码访问安全性法则;
- 在 IE 中几乎可以承载任何Windows窗体控件,该控件必须被安装到全局程序集缓存(GAC)或者与使用它的Web页面位于相同的虚拟目录中;
- IIS虚拟目录的执行权限必须为纯脚本,否则将无法激活要使用的控件。
在 IE 中运行Windows窗体控件,需要如下步骤:
- 创建Windows窗体控件:
新建Windows 控件库项目,和普通的控件库一样。 - 创建引用该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脚本访问控件的公开的属性、方法。 - 创建虚拟目录并设置权限:
如上所述,设置网页所在虚拟目录的权限,并部署Windows窗体控件。 - 运行该控件:
启动 IE 浏览网页,Windows窗体只能够在 IE 浏览器中运行,不能够在其它的浏览器中运行。
注意:如果用VS2005编译,出现窗体控件不能够正常显示,或者不能和客户端JavaScript脚本进行交互访问,将所有的Windows窗体控件代码复制到一个文件中,用.NET附带的命令行工具csc/vbc进行编译,则可以正常显示,不知是怎么回事。
张志敏所有文章遵循创作共用版权协议,要求署名、非商业 、保持一致。在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处。
本博客已经迁移到 GitHub , 围观地址: https://beginor.github.io/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架