用HTML做软件UI用到的的一些技术
2006-06-12 15:52 无常 阅读(6054) 评论(5) 编辑 收藏 举报做WEB开发的想把网页做成应用程序的界面,开发应用程序的又想把程序界面做得和WEB一样。本文介绍一下用HTML做软件UI用到的的一些技术。
其实HTML UI也不是什么新鲜事了,Norton Antivirus从几年前的版本就开始用了,vs.net2002中的开始页也用了这个技术。
from:http://wuchang.cnblogs.com/archive/2006/06/12/423978.html
[方案一,适用于vs2002~2005(vb/delphi等类似)]
1、导入web browser COM控件
2、实现IDocHostUIHandler接口,MSDN中有介绍WebBrowser Customization 。
IDocHostUIHandler接口有十几个方法,这里我们只关心这个:void IDocHostUIHandler.GetExternal(out object ppDispatch)
当在浏览器脚本中调用 window.external时就会调用这个方法,我们需要在返回一个对象。
如:










































添加Hello类的代码,注意:此类一定要加上ComVisible=true特性,或是给整个程序集加上[assembly: ComVisible( true )]。
public class Hello
{
public void Haha(string msg)
{
MessageBox.Show( msg );
}
}
这样,就可以在浏览器中用脚本这样调用
<!--
function callHostUI(msg)
{
window.external. Haha (msg);
}
callHostUI(“hello wuChang”);
-->
</script>
[方案二,适用于vs2005]
VS2005提供的WebBrowser控件,已经实现了IDocHostUIHandler接口,使用起来就更简单了。
WebBrowser提供了public Object ObjectForScripting { get; set; }
属性,只需要这样用就行了。
webBrowser1.ObjectForScripting = new Hello ();
调用浏览器用的脚本可以这样
webBrowser1.Document.InvokeScript("js函数名",
new String[] { "参数列表 " });
更多的内容在.net FW SDK (ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.chs/CPref17/html/P_System_Windows_Forms_WebBrowser_ObjectForScripting.htm)里有介绍。
.net2.0在System.Windows.Forms name spaces中提供HtmlDocument、HtmlElement等访问HTML元素的控件,使用方法在SDK里有,这里就不介绍了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架