CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

怎么办:自定义类 + 自定义类型

楼主gao43()2002-04-18 16:47:51 在 VB / 基础类 提问

此问题与kevindude   (kevin)的"自定义类型出错,谁来帮我!   "类似  
  请大家再接再励、共谋对策  
   
  在模块中自定义类型  
  Public   Type   TagItem  
        Name   as   string  
        Text   as   string  
  end   type  
   
  创建类TagClass  
  private   mintNum   as   integer  
  Private   muttTagList   as   TagItem  
   
  Friend   sub   AddTagItem(ipTag   as   TagItem)  
        dim   intUb   as   integer  
   
        Redim   muttTagList(1)  
         
        intUb   =   UBound(muttTagList)  
        redim   preserve   muttTagList(intUb   +   2)  
        muttTagList(intUb+1).name   =   ipTag.name        
        muttTagList(intUb+1).text=   ipTag.text  
  end   sub  
   
  在Form1中有如下代码  
        dim   a   as   object  
        dim   b   as   TagItem  
   
        b.name   =   "bName"  
        b.Text   =   "bText"  
        set   a   as   new   tagclass  
        a.addtagitem(b)  
   
  编译时出错:  
  只有在公共对象模块中定义的公共用户定义数据类型可以作为参数、类模块的公共过程返回类型、公共用户定义类型的字段使用。  
  问题点数:100、回复次数:3Top

1 楼Rectangle(旺财)回复于 2002-04-18 16:55:10 得分 20

在类的方法传递的自定义类型必须是在模块中定义的全局的类型Top

2 楼gump2000(阿甘)回复于 2002-04-18 16:56:13 得分 70

Private   mintNum   As   Integer  
  Private   muttTagList()   As   TagItem  
   
  Friend   Sub   AddTagItem(ipTag   As   TagItem)  
        Dim   intUb   As   Integer  
   
        ReDim   muttTagList(1)  
         
        intUb   =   UBound(muttTagList)  
        ReDim   Preserve   muttTagList(intUb   +   2)  
        muttTagList(intUb   +   1).Name   =   ipTag.Name  
        muttTagList(intUb   +   1).Text   =   ipTag.Text  
  End   Sub  
   
   
  Private   Sub   Command1_Click()  
          Dim   a   As   Class1  
        Dim   b   As   TagItem  
   
        b.Name   =   "bName"  
        b.Text   =   "bText"  
        Set   a   =   New   Class1  
        a.AddTagItem   b  
   
  End   Sub  
   
  修改了几个地方,通过  
  Top

3 楼gpo2002(永吹不休)回复于 2002-04-18 23:59:52 得分 10

1,Private   muttTagList   as   TagItem,非数组,无法用redim重定义  
  2,  
  Friend   sub   AddTagItem(ipTag   as   TagItem)  
        dim   intUb   as   integer  
        Redim   muttTagList(1)        
        intUb   =   UBound(muttTagList)  
        redim   preserve   muttTagList(intUb   +   2)  
        muttTagList(intUb+1).name   =   ipTag.name        
        muttTagList(intUb+1).text=   ipTag.text  
  end   sub  
  该成:  
  Friend   sub   AddTagItem(ipTag   as   TagItem)  
        dim   intUb   as   integer  
        intUb   =   UBound(muttTagList)  
        redim   preserve   muttTagList(intUb   +   1   )  
        muttTagList(intUb+1).name   =   ipTag.name        
        muttTagList(intUb+1).text=   ipTag.text  
  end   sub  
   
  ReDim   muttTagList(1)应该是在初始化时设置  
   
   
     
     
  Top

相关问题

  • 多个IDL中自定义类型重名怎么办?
  • 自定义数据类型
  • 一个自定义类型
  • 自定义的类不认怎么办?
  • 关于自定义变量类型
  • 自定义数据类型的问题?
  • 用户自定义类型未找到?
  • 如何自定义数据类型?
  • 自定义类型的问题 ,急!
  • 自定义类型和Error两问。

关键词

  • 模块
  • mutttaglist
  • intub
  • iptag
  • tagitem
  • 自定义
  • addtagitem
  • redim
  • 类型
  • textend

得分解答快速导航

  • 帖主:gao43
  • Rectangle
  • gump2000
  • gpo2002

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo