提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|其它|编辑:郝浩|2011-07-08 18:05:55.000|阅读 460 次
概述:上回重新讲解了 IEBrowser jQuery 方面的方法, 本次向大家介绍其新版本中为页面元素添加 .NET 事件的功能.在 IEBrowser 的最新版本 2.5.0 中, 增加了 AttachEvent 系列的方法, 分别是 AttachEvent, AttachEventByID, AttachEventByJQuery, AttachEventByTagName, 他们可以为指定的 HtmlElement 对象, 指定 id 属性的元素, 符合指定 JQuery 对象要求的元素, 以及指定 tagName 属性的元素添加 .NET 事件.本次的例子是实现一个简单的加法运算功能。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
上回重新讲解了 IEBrowser jQuery 方面的方法, 本次向大家介绍其新版本中为页面元素添加 .NET 事件的功能.
在 IEBrowser 的最新版本 2.5.0 中, 增加了 AttachEvent 系列的方法, 分别是 AttachEvent, AttachEventByID, AttachEventByJQuery, AttachEventByTagName, 他们可以为指定的 HtmlElement 对象, 指定 id 属性的元素, 符合指定 JQuery 对象要求的元素, 以及指定 tagName 属性的元素添加 .NET 事件.
本次的例子是实现一个简单的加法运算功能, 首先, 新建了一个名为 add.htm 的页面, 代码如下:
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2 <html>
3 <head>
4 <title></title>
5 </head>
6 <body>
7 <input type="text" id="num1" /> + <input type="text" id="num2" />
8 <input type="button" value="=" /> <span id="result">?</span>
9 </body>
10 </html>
在页面中, 添加了两个 id 分别为 num1 和 num2 的文本框, 用户将在这两个文本框中输入两个加数, 另外有一个用于计算的 = 号按钮, 以及一个 id 为 result 并显示计算结果的 span 元素.
可以看到页面中没有书写任何的 js 脚本来完成加法的运算, 因为我们接下来要在 .NET 中使用 IEBrowser 来完成这个任务.
在页面编写完成后, 我们添加一个窗体 FormAdd, 下面是部分代码:
1 public partial class FormAdd : Form
2 {
3 private IEBrowser ie;
4
5 // ...
6
7 private void FormAdd_Load ( object sender, EventArgs e )
8 {
9 this.ie = new IEBrowser ( this.webBrowser );
10
11 this.ie.Navigate ( Path.Combine ( AppDomain.CurrentDomain.BaseDirectory, "add.htm" ) );
12
13 this.ie.IEFlow.Wait ( new UrlCondition ( "w", "add.htm", StringCompareMode.Contain ) );
14
15 this.ie.AttachEventByID ( "num1", "onchange", this.numChange );
16 this.ie.AttachEventByID ( "num2", "onchange", this.numChange );
17
18 this.ie.InstallJQuery(JQuery.CodeMin);
19 this.ie.AttachEventByJQuery ( JQuery.Create ( "':button'" ), "onclick", this.addClick );
20 }
21
22 private void numChange ( object sender, EventArgs e )
23 {
24 HtmlElement num = sender as HtmlElement;
25
26 try
27 { Convert.ToInt32 ( num.GetAttribute ( "value" ) ); }
28 catch
29 { MessageBox.Show ( "请输入一个正确的数字" ); }
30
31 }
32
33 private void addClick ( object sender, EventArgs e )
34 {
35
36 try
37 {
38 int result;
39
40 result = Convert.ToInt32 ( this.ie.ExecuteJQuery<string> ( JQuery.Create ( "'#num1'" ).Val ( ) ) ) + Convert.ToInt32 ( this.ie.ExecuteJQuery<string> ( JQuery.Create ( "'#num2'" ).Val ( ) ) );
41
42 this.ie.ExecuteJQuery ( JQuery.Create ( "'#result'" ).Text ( "'" + result.ToString ( ) + "'" ) );
43 }
44 catch
45 { MessageBox.Show ( "计算错误" ); }
46
47 }
48
49 }
在窗口的 Load 事件中, 我们初始化了 IEBrowser 对象并使用 Navigate 和 Wait 方法载入并等待之前建立的 add.htm 页面, 这里 add.htm 需要输出到最终的运行目录中. 而 Navigate 和 Wait 这两个方法应该在之前的文章中说明过, 这里就不再详细解释了.
在 15 和 16 行, 我们使用了 AttachEventByID 方法为页面上的两个文本框添加了改变事件, 第一个参数传递了文本框的 id, 分别是 num1 和 num2, 第二个参数则为事件的名称 onchange, 第三个参数为处理事件的 .NET 方法 numChange. 在 22 行, 我们看到了 numChange 的定义, 在 numChange 中, 检测了文本框的文本是否为一个合法的数字, 我只是使用了一个简单 try ... catch ... 来完成这个功能, 大家也可以使用其他的方法. 事件中的 sender 参数也就是触发事件的页面元素对应的 HtmlElement 对象, 而正因如此, 我们才使用了 num.GetAttribute ( "value" ) 来获取文本框的 value 属性.
在 19 行, 我们使用了 AttachEventByJQuery 方法为页面上的按钮添加点击事件, 选择器 ':button' 表示页面上所有的按钮, 而页面上只有一个计算按钮, 所以也就正确的为计算添加了 addClick 来处理事件. 而 AttachEventByJQuery 也上一方法的不同在于, 他传递一个 JQuery 对象作为选择页面的依据. 注意执行 AttachEventByJQuery 之前, 我们需要使用 InstallJQuery 方法在页面上安装 jQuery 脚本. 在 addClick 中, 我们通过 IEBrowser 的 ExecuteJQuery 方法获取到了页面中用户输入的加数, 然后相加并设置到 span 元素中显示.
上篇文章介绍了 IEBrowser jQuery 方面的功能, 这里不再详细解释 40 与 42 行.
好的, 整个例子还是比较简单的, 如果希望看到实际过程, 可以参照下面的演示.
IEBrowser 是开源共享的代码, 可以在 //code.google.com/p/zsharedcode/wiki/Download 页面下载 dll 或者是源代码.
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:博客园面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢