站长学院通行证

 

返回“站长学院”网站首页

 当前位置 → 中国站长学院网络编程Visual Basic教程 → 浏览正文


VisualBasicCOM基础之更多属性


作者:中国站长学院[收集整理]     来源:互联网转载     点击数:     更新时间:2008年03月17日

【字体: 】           【背景色 杏仁黄 秋叶褐 胭脂红 芥末绿 天蓝 雪青 灰 银河白(默认色) 】    【收藏本文】   【打印


有时候,为了更好地处理类往往需更多的属性。例如,假如你有四种不同的客户群:集团、较大、较小和新的客户类型,或者一个用于搜索的类中有三种不同的搜索方式:软盘、硬盘和网络。那么,能不能最好从选项列表中选择一个,而不是用不能理解的数字或文本来设置相关属性?

  我想,答案是肯定的。因为这种处理就称为枚举。



  打开上一节的工程,让我们添加一些代码。

  在CDog类中添加下列代码:

->  PublicEnumCoatType

   BigAndShaggy=1

   ShortCrewCut=2

   PoodleStyleAfro=3

   Unknown=4

  endEnum->

  关键词Enum就是用来定义枚举的,换句话说,它是可能选项的列表。各选项都有相应的数字,也就是说BigAndShaggy表示1,ShortCrewCut等于2,等等。

  需要注意的是,当将枚举项相关信息添加在数据库中时,其相应的数值是非常有用的。由于BigAndShaggy实际代表的是数值1,所以可以直接将其插入到数据库的数值字段中。这就意味着,可以方便使用字符串来维护数据库。

  所以,我们来创建一个Dog的Coat类型列表,并另外定义一个属性,将这些类型添加在CDog类中。

  在类中声明下列变量:

  PrivateudtCoatAsCoatType

  这个定义的私有变量用来保存即将添加的Coat类型属性,注意到udtCoat变量既不是字符串也不是整型,而是我们自己定义的枚举类型CoatType。

  当类CDog打开时,选择Tools菜单中的AddProcedure命令,弹出相应的对话框;

  Name编辑框中键入Coat;

  选中Property选项按钮,然后单击[OK]。

  系统自动产生下列代码框架:

->  PublicPropertyGetCoat()AsVariant

  EndProperty

  PublicPropertyLetCoat(ByValvNewValueAsVariant)

  EndProperty->

  但我们需要的却不是这个框架。代码中,Variant变量类型是能接收和处理任何类型数据。在我们定义的CDog类中,最后的属性是Age,它只能接受整型。但现在需要属性能接收CoatType列表中的数据类型,因此需要作下列修改:

  将产生的代码中所有的Variant改成CoatType;

  然后,添加一些实际处理属性的代码。

  在属性的Get过程中,添加下列代码:

->Coat=udtCoat->

  在属性的Let过程中,添加下列代码:

->udtCoat=vNewValue->

  切换到Form1;

  将Command按钮的代码改为:

->DimMyDogAsCDog
SetMyDog=NewCDog
MyDog.Name=Billy->

  现在开始键入:MyDog.Coat=

  奇迹出现了,当你敲下=键时,出现一个含有可能选项的列表,从中我们可以选择一个。

  完成代码的键入:MyDog.Coat=ShortCrewCut

  下一步,我们将获取Coat属性的值。假如现在就来简单地在消息对话框中显示属性值,则只需返回选择项的值就可以了。例如,若选择了ShortCrewCut,其属性一定返回2。不信,可以试一试!

  但这里采用另外一种方法,它是用If-Then语句判断Coat:

  在Command按钮已有的代码后面添加下列代码:

->  IfMyDog.Coat=BigAndShaggyThen

   MsgBoxYouhaveabig,bouncy,bushypup!

  ElseIfMyDog.Coat=PoodleStyleAfroThen

   MsgBoxYourpoochispretty,petitandpooch-like!

  ElseIfMyDog.Coat=ShortCrewCutThen

   MsgBoxYourdogisfullofoomph,oomphandmoreoomph!

  ElseIfMyDog.Coat=UnknownThen

   MsgBoxIhavenoideaaboutyourdog.Idontthink&_

       youdoeither!

  EndIf->

  这里的代码只是简单判断Coat属性值,并显示相应的消息对话框。当然,这里也可以使用SelectCase语句。

  最后,我们添加最后一条语句来释放计算机内存:

  在Command按钮已有的代码后面添加下列代码:

->SetMyDog=Nothing->

  按F5运行程序,并单击Command按钮测试一下。

  结果怎样?->


责任编辑:中国站长学院

注册投稿

收藏本文到  >>>

相关文章

动网--社区论坛新模式的领航者04/11 
从宏观到细节,我们一样坚持完美04/11 
[动网.Net]融入新技术,点亮新型04/11 
IWMS官方论坛安家动网.Net04/11 
动网-动易强强联手,开掘.NET产品04/11 
目录式伪静态 -- 新型社区模式元素04/11 
[动网.Net]PK、电子商务、活动04/11 
[动网 .Net] 创新、颠覆和对新04/11 
财付通参加动网站长聚会共谋深入合作04/11 
腾讯财付通携手动网 共推论坛交易模式04/11 
动网广州站长聚会圆满结束04/11 
模板教程【Pagetitle 标记】04/11 
模板教程【Prenext 标记】(十04/11 
模板教程【Pagebreak 标记】04/11 
模板教程【Pagelist 标记】(04/11 
模板教程【List 标记】(十一)04/11 

推荐导读

热门资讯

资讯快报

论坛新贴

返回首页

关于我们 - 帮助(?) - 广告服务 - 诚征英才 - 友情链接 - 网站地图 - 站长BLOG

返回网站顶部

Copyright © 2007 中国站长学院(CNZZXY.COM). All Rights Reserved
站长学院服务资咨热线:0755-84289786    业务合作:(0)13554938953  (0)13423986856    网络宽带及主机提供:深圳傲网科技
粤ICP备08006968号   站长:忧郁的秋天(向管理员发邮件)   站长交流QQ群①:1815595   站长交流QQ群②:32960074