WinCC V7.0 支持.NET控件的编程入门
WinCC V7.0 支持.NET控件的编程入门
1. 开发.NET控件的示例程序
WinCC V7.0支持的自定义.NET控件,需要使用Visual Studio 2005编写。下面以C#编程语言为例,开发一个简单的.NET控件,这个控件仅提供一个方法Add, 实现两数相加的功能。
在VS2005中新建一个工程CalculateControl,工程类型为 Visual C# 中的Windows Control Library,在 Solution Explorer 窗口中,将UserControl1.cs重命名为 Calculate.cs,弹出的对话框询问是否改变所有与UserControl1相关的代码,点击[Yes]确认。在Calculate.cs 文件的Calculate类中添加Add函数,用于计算两数之和,如下所示:
public double Add(double dblA, double dblB)
{
return ( dblA + dblB );
}
在 Calculate.cs 文件的Calculate类之前插入如下代码:
// CalculateControl.Calculate 是该控件的PROGID.
[ProgId("CalculateControl.Calculate")]
// 缺省的是ClassInterfaceType.AutoDispatch,该方式下只生成dispatch接口,
// 只能被使用script、VB等late bingding方式的COM客户使用。
[ClassInterface(ClassInterfaceType.AutoDual)]
然后在 Calculate.cs 文件的上部插入如下代码:
using System.Runtime.InteropServices;
将工具栏中的 Solution Configurations 下拉列表设为 Release,在工程\属性的 Application 页中,点击 [Assembly Information…] 按钮,选中 Make assembly COM-Visible,并点击 [OK] 按钮确认。在 Build 页中,选中 Register for COM interop 后,保存设置,并编译程序,这样编译后同时会生成CalculateControl.tlb文件,并且自动将其注册(命令行命令regasm有同样的效果),注意到CalculateControl.dll生成到 bin\Release 文件夹中。
2.开发.NET控件的安装程序
如果该控件需要在另一台计算机上使用,需要为该控件设计安装程序。新建一个VS2005工程SetupCalculateControl,工程类型为Setup and Deployment \ Setup Project。在
Solution Explorer窗口中的工程名(SetupCalculateControl)节点上右键单击,在弹出的快捷菜单中选择Add\Assembly…项,在Browse页中,找到刚才编译的CalculateControl.dll,将其加入到安装程序中,注意到CalculateControl.tlb 也一并被加入进来。选中CalculateControl.dll节点,将其属性中的Register从vsdraDoNotRegister改为vsdraCOM,用于在安装过程中自动注册控件。将工具栏中的 Solution Configurations 下拉列表设为 Release,编译该安装工程,在Release 文件夹中可以找到生成的安装文件(包括setup.exe和SetupCalculatorControl.msi)。
3. 测试.NET控件
使用ActiveX Control Test Container测试该控件的功能,双击tstcon32.exe(位于$\Program Files\Microsoft Visual Studio 8\Common7\Tools),在Edit菜单中选择 [Insert New Control…] ,在弹出的 Insert Control 对话框中,点击 [Implemented Categories…] 按钮,选中 .NET Category 复选框,点击 [OK] 按钮确认。在列表框中选择 CalculateControl.Calculate,如图1所示:
图 1:在ActiveX Control Test Container中插入控件
点击 [OK] 按钮确认,这时该.NET控件被加入到测试容器中。选中该控件,在Control菜单中选择[Invoke Methods…]项,在Method Name中选择Add(Method),分别设定两个加数的值,点击 [Invoke] 按钮,在 Return Value 文本框中可以看到两数相加的结果。 4. 在WinCC V7.0中加载和使用该控件的步骤
1.双击该控件的安装文件Setup.exe,安装并注册CalculateControl.dll控件,用户可以修改安装目录,并按照正常的步骤安装(如果想卸载该控件,可以在控制面板的添加/删除程序中移除该控件)。
2.新建一个WinCC V7.0工程,并新建一个画面。按照如下步骤加载和使用该控件:
?在Object Palette(对象面板)的Controls页中的.NET Control上右键单击,选择 [Add/Remove…] 快捷菜单项。
?在弹出的对话框中点击[Add…]按钮,在打开的对话框中找到安装路径下的CalculateControl.dll控件(例如:C:\Program Files\Default Company Name\SetupCalculateControl\
CalculateControl.dll),双击该控件或者选中它并按[Open]按钮。
图 2:在Select .NET Object对话框中插入自定义.NET控件
?如图2所示,在Available Controls列表中高亮显示Calculate项,选中它前面的Check Box,点击最下面的[OK]按钮,即可将控件加入到WinCC V7.0中。
?将.NET Control节点展开,找到” CalculateControl.Calculate”并将其拖拽到窗体上的合适的位置。 ?在窗体上加入一个静态文本控件,将其对象名称改为 CalculateResult。
?在窗体上加入一个按钮,将其文本改为Add,在按钮的鼠标左键单击(Button\Mouse\Press left)事件中加入VBS脚本,创建.NET控件并调用它的Add方法,源程序如下所示:
Dim objCalculateControl
Dim objCalculateResult
Set objCalculateControl = CreateObject("CalculateControl.Calculate")
Set objCalculateResult = ScreenItems("CalculateResult")
objCalculateResult.Text = objCalculateControl.Add ( 6, 12 )
注意,WinCC V6.2使用ScreenItems(”控件对象名”)引用加入窗体的ActiveX控件。但WinCC V7.0不能使用这种方法,建议使用CreateObject(“.NET控件的PROGID”) 来创建和引用加入的.NET控件。
?保存并运行该程序,点击[Add]按钮,静态文本中将显示结果18。
注意:本文提供了 WinCC V7.0 支持.NET控件的基本编程方法和测试程序,所有的源程序
及测试过程仅供参考。
.NET4.0 用户控件的概述
https://www.360docs.net/doc/e7512477.html,4.0 用户控件的概述 用户控件是页面的一段,包含了静态HTML代码和服务器控件。其优点在于一旦创建了一个用户控件,可以在同一个应用的多个页面中重用。并且,用户可以在Web用户控件中,添加该控件的属性、事件和方法。 1.什么是用户控件 用户控件(后缀名为.ascx)文件与https://www.360docs.net/doc/e7512477.html,网页窗体(后缀名为.aspx)文件相似。就像网页窗体一样,用户控件由用户接口部分和控制标记组成,而且可以使用嵌入脚本或者.cs代码后置文件。用户控件能够包含网页所能包含的任何东西,包括静态HTML内容和https://www.360docs.net/doc/e7512477.html,控件,它们也作为页面对象(Page Object)接收同样的事件(如Load和PreRender),也能够通过属性(如Application,Session,Request 和Response)来展示https://www.360docs.net/doc/e7512477.html,内建对象。 用户控件使程序员能够很容易地跨Web应用程序划分和重复使用公共UI功能。与窗体页相同,用户可以使用任何文本编辑器创作用户控件,或者使用代码隐藏类开发用户控件。 此外,用户控件可以在第一次请求时被编译并存储在服务器内存中,从而缩短以后请求的响应时间。与服务器端包含文件(SSI)相比,用户控件通过访问由https://www.360docs.net/doc/e7512477.html,提供的对象模型支持,使程序员具有更大的灵活性。程序员可以对在控件中声明的任何属性进行编程,而不只是包含其他文件提供的功能,这与其他任何https://www.360docs.net/doc/e7512477.html,服务器控件一样。 此外,可以独立于包含用户控件的窗体页中除该控件以外的部分来缓存该控件的输出。这一技术称作片段缓存,适当地使用该技术能够提高站点的性能。例如,如果用户控件包含提出数据库请求的https://www.360docs.net/doc/e7512477.html,服务器控件,但该页的其余部分只包含文本和在服务器上运行的简单代码,则程序员可以对用户控件执行片段缓存,以改进应用程序的性能。 用户控件与普通网页页面的区别是: ●用户控件开始于控件指令而不是页面指令。 ●用户控件的文件后缀是.ascx,而不是.aspx。它的后置代码文件继承于 https://www.360docs.net/doc/e7512477.html,erControl类.事实上,UserControl类和Page类都继承于同一个 TemplateControl类,所有它们能够共享很多相同的方法和事件。 ●没有@Page指令,而是包含@Control指令,该指令对配置及其他属性进行定义。 ●用户控件不能被客户端直接访问,不能作为独立文件运行,而必须像处理任何控件一 样,将它们添加到https://www.360docs.net/doc/e7512477.html,页中。 ●用户控件没有html、body、form元素,但同样可以在用户控件上使用HTML元素和 Web控件。 用户可以将常用的内容或者控件以及控件的运行程序逻辑,设计为用户控件,
实验2. ASPNet验证控件
实验编号:02 四川师大Web程序设计实验报告 2015年12月26日 计算机科学学院级 4 班实验名称https://www.360docs.net/doc/e7512477.html,验证控件 姓名:沙夫都学号:2013110431 指导老师:徐勇实验成绩: 97 实验二https://www.360docs.net/doc/e7512477.html,验证控件 一.实验目的及要求 使用https://www.360docs.net/doc/e7512477.html,验证控件制作一个简单的用户注册页面。 二.实验内容 1.使用https://www.360docs.net/doc/e7512477.html,验证控件制作一个简单的用户注册页面。 2.注册页面中有用户名、密码、重复密码、年龄、电子邮件等必填项。其中密码需要二次 验证,年龄范围在1~100之间,电子邮件符合规范。 三.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页) <%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>
用户注册 | |
用户名: | |