ActiveX控件和自定义控件组开发(1)

 

ActiveX Microsoft 对一系列策略性面向对象程序技术和工具的称呼,它与 Java 中的 Applet 功能类似,其依赖的主要技术是组件对象模型( COM ),它是“成品”的软件模块。

 

 

 

ActiveX 控件是在 OLE 控件“对象链接与嵌入控件”和 OCX 控件的基础发展起来的,其重要作用是可以插入到网页或应用程序中使用。

 

 

 

ActiveX 控件可以用各种编程语言来开发,如 C C++ ,也包括 .NET 中的 C #、 VB.NET 等。 ActiveX 控件通常以 dll ocx 文件的形式存在,它不能独立运行,必须依赖于其他程序,相应的这些程序称为 ActiveX 控件宿主程序。

 

 

 

宿主程序在使用控件和组件时,不需要编译,只需要按照既定的格式说明进行调用即可。这与使用函数或类不同。在使用函数或类时,需要将它们的代码加入到程序中相应的位置,并在编译后才能调用。

 

 

 

创建 ActiveX 控件最简便的方法是通过继承 UserControl 类来实现。

 

1. 电子时钟控件

开发一个具有电子时钟功能的ActiveX控件,该自定义控件还提供用于获取或设置时间的属性。

(1)在VS.NET 2008中选择“文件”|“新建”|“项目”命令,在打开的“新建项目”对话框中选择左边方框中的“Visual C#”项,在右边的方框中选择“Windows窗体控件库”(而不能选择其他项);

(2)为使在其他宿主程序中显示具有特定意义的控件名,我们需要将类名更改为“MyAccutronControl”,这涉及到三个地方的修改:

在解决方案资源管理器中右击节点“UserControl1.cs”,在打开的菜单中选择“查看代码”,然后打开代码编辑器,将自动形成的类名和构造函数名“UserControl1”都改为“MyAccutronControl”;
双击解决方案资源管理器中的节点“UserControl1.Designer.cs”,在编辑器中打开UserControl1.Designer.cs文件,将其中的类名由原来的“UserControl”改为“MyAccutronControl”。

(3)双击节点“UserControl1.cs”,打开自定义控件的设计界面,添加一个Label控件和Timer组件 ,并进行设置:

结果控件的设计界面如下:

(4)为开发的控件编写代码。其中,先在MyAccutronControl类中声明三个成员变量:

    private int hour = 0;   //作小时计数器 

    private int minute = 0;  //分钟计数器

    private int second = 0;   //秒计数器

(5)然后在Timer组件的Tick事件处理函数中编写实现hour、minute和second之间计数关系的代码:
private void timer1_Tick(object sender, EventArgs e)
{
string hs,ms,ss,timeStr;
hs = ms = "";  second++;
if (second == 60)
{  second = 0;
    minute++;
    if (minute == 60)
    {
        minute = 0;
        hour++;
        if (hour == 24) hour = 0;
    }
}
hs = hour.ToString();
if (hs.Length == 1) hs = "0" + hs;  //保证以两个字符显示分钟数
ms = minute.ToString();
if (ms.Length == 1) ms = "0" + ms;  //保证以两个字符显示分钟数
ss = second.ToString();
if (ss.Length == 1) ss = "0" + ss;  //保证以两个字符显示秒数
timeStr = hs + ":" + ms + ":" + ss;         
label1.Text = timeStr;
}
为了让宿主程序能够对时间的各种成份(小时、分、秒)进行设置,还分别定义三种属性:
public int hours     //获取或设置小时数的属性
{
get { return hour; }
set { hour = value; }
}
public int minutes //获取或设置分钟数的属性
{
get { return minute; }
set { minute = value; }
}
public int seconds //获取或设置秒数的属性
{
get { return second; }
set { second = value; }
}

 

5生成控件。选择菜单“生成”|“生成解决方案”命令(也可以按F6),将生成名为AccutronControl.dll的文件,它们默认位于程序目录下的AccutronControl\bin\Debug子目录下。

——至此,名为MyAccutronControl的自定义控件已经成功创建。注意,控件名是由对应的类名来决定的。、

(6)应用控件。新建一个winform窗体项目,将生成的.dll控件拖放到窗体中即可。(具体怎么加载这个控件到工具箱很简单的大家应该都清楚【右击选择项,浏览,找到刚才生成的.dll文件即可】)

tips:在VS2010 下可以直接运行控件

运行如下:

转载于:https://www.cnblogs.com/gangwu/archive/2012/05/02/2478857.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值