注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

王聚

多一些思考才能多一些行动

 
 
 

日志

 
 

用户自定义控件  

2014-03-30 23:42:10|  分类: 技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

     在用VB6.0开发ActiveX部件的过程中,我们难免要接触到一种不太常用(在标准EXE工程里),但是又很重要的的机制,那就是属性过程(Property过程)。属性大家经常设置Caption属性,Value属性等等,这些属性要么影响着控件的运行方式,要么影响着控件的外观,可是,这些属性在控件内部又是怎样的呢?

     首先,启动VB6.0,建立一个标准EXE工程,再添加一个ActiveX 控件工程。将控件设计器的名称属性由UserControl1修改成MyControl。做好后的设置如下图所示:2014年03月30日 - 11期王聚 - 王聚 廊坊师院信息技术提高班 十一期

这时双击用户控件设计器,出现用户控件设计器的代码窗口,如下图所示:2014年03月30日 - 11期王聚 - 王聚 廊坊师院信息技术提高班 十一期

  这时候,选择【工具】菜单的【添加过程】菜单项,做好如下图的设置:
2014年03月30日 - 11期王聚 - 王聚 廊坊师院信息技术提高班 十一期
 这时候在代码窗口出现了如下的代码:

Public Property Get ABSS() As Variant


End Property

Public Property Let ABSS(ByVal vNewValue As Variant)


End Property

这两个过程就是我们所说的属性过程,它定义了一个名为ABSS的属性。这时候我们发现,一个属性却有两个属性过程,这两个过程除了用Property关键字标识之外,还有一个不同的子标识,就是Get和Let关键字。现在,我就来介绍一下这两种属性过程。

属性过程有三种,均以Property关键字标识,同时,它们又具有不同的子标识关键字,分别是Get,Let,Set。我们将这三种过程分别称作“属性Get过程”,“属性Let过程”和“属性Set过程”。前面两种的声明就如上面的代码所示,而属性Set过程的声明与属性Let过程的类似,只是将Let换成Set而已。

不过这些不同子标识关键字的属性过程有什么用呢?现在,我们将我们设计的MyControl控件拖放到窗体上(由于我们没有对用户控件设计器的图形界面作更改,所以控件是空白的),然后打开窗体的代码窗口,在Click事件中加入如下的代码,并且在开头设置断点,结果如下图所示:

2014年03月30日 - 11期王聚 - 王聚 廊坊师院信息技术提高班 十一期

 

然后我们在用户控件设计器的代码窗口中加入一些代码,结果如图所示:
用户自定义控件 - 11期王聚 - 王聚 廊坊师院信息技术提高班 十一期
 接着,我们单击【运行】菜单的【启动】菜单项(或单击工具栏的启动按钮),工程1的窗体出现了,但是断点没什么反应。别着急,单击窗口(别单击刚才拖有控件的地方),程序在断点处停住了,按F8进入下一条语句,现在的运行情况如下图所示:
 用户自定义控件 - 11期王聚 - 王聚 廊坊师院信息技术提高班 十一期
 这就说明程序运行到了“a = MyControl1.ABSS”处,这句代码就是将属性ABSS得值读出来并赋给a这个变量,也就是读取属性值。再按F8,这时候我们发现,程序转跳到了属性Get过程里,如下图所示:     用户自定义控件 - 11期王聚 - 王聚 廊坊师院信息技术提高班 十一期
   这样就说明,当我们通过各种方式(属性窗口,代码)修改一个属性的属性值时,该属性的Let事件就会发生。不过,还没完,既然修改了属性值,那么作为程序员的我们,又怎么拿回客户设置的新的属性值呢?又是老规矩,按F8呗。尽管F8不能让我们拿到新的属性值,但是它可以让我们看到怎么拿回新的属性值。按完F8后,将鼠标移到Let过程的vNewValue参数上。不知道你看到了没有,不过我看到个:                       用户自定义控件 - 11期王聚 - 王聚 廊坊师院信息技术提高班 十一期
 还记得上面的代码吗?前面的代码正是将ABSS属性设为1。其实,我们早就该想到,Let过程的vNewValue参数正是新的属性值.就这样,我们轻而易举的拿到了新的属性值。




  评论这张
 
阅读(72)| 评论(24)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017