在usercontrol里定义了一个集合类colgroup
属性放在clsgroup类里
ADD,Remove,itme等在Colgroup集合类colgroup里现在要在控件里定义Colgroup为控件的一个group属性
想以后使用时就是usercontrol.group.add  group.remove定义如下:'缺省属性值:
Const m_def_Group = 0'属性变量:
Dim m_Group As Variant'从存贮器中加载属性值
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
    m_Group = PropBag.ReadProperty("Group", m_def_Group)
End Sub'将属性值写到存储器
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
    Call PropBag.WriteProperty("Group", m_Group, m_def_Group)
End Sub'注意!不要删除或修改下列被注释的行!
'MemberInfo=14,0,0,0
Public Property Get Group() As ColGroup
    Group = m_Group
End PropertyPublic Property Let Group(ByVal New_Group As ColGroup)
    m_Group = New_Group
    PropertyChanged "Group"
End Property但运行到GeT属性时
 Group = m_Group出错,说属性的使用无效请问应该怎样定义啊,哪里错了

解决方案 »

  1.   

    '注意!不要删除或修改下列被注释的行!
    'MemberInfo=14,0,0,0
    Public Property Get Group() As ColGroup
        Group = m_Group
    End PropertyPublic Property Let Group(ByVal New_Group As ColGroup)
        m_Group = New_Group
        PropertyChanged "Group"
    End Property
    ------------------------
    更改如下
    Public Property Get Group() As ColGroup
        Set Group = m_Group
    End PropertyPublic Property Let Group(ByVal New_Group As ColGroup)
        Set m_Group = New_Group
        PropertyChanged "Group"
    End Property
      

  2.   

    另外,对于已知对象类型的,最好不要使用“Dim m_Group As Variant”这样的语句。
      

  3.   

    哪默认值怎么是0呢,有错没有啊,应改吗?
    缺省属性值:
    Const m_def_Group = 0为什么用这个SET啊
    Public Property Let Group(ByVal New_Group As ColGroup)
        Set m_Group = New_Group
        PropertyChanged "Group"
    End Property
    可以改成这样吗?Public Property set Group(ByVal New_Group As ColGroup)
        m_Group = New_Group
        PropertyChanged "Group"
    End Property
      

  4.   

    哪默认值怎么是0呢,有错没有啊,应改吗?
    -------------------------------------
    对于对象而言,它的初始值是Nothing,不是0
    '将属性值写到存储器
    Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
        Call PropBag.WriteProperty("Group", m_Group, Nothing)
    End Sub
    '从存贮器中加载属性值
    Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
        Set m_Group= PropBag.ReadProperty("Group", Nothing)
    End Sub缺省属性值:
    Const m_def_Group = 0
    ----------------------------
    对于Object对象,不能使用Const语句可以改成这样吗?
    Public Property set Group(ByVal New_Group As ColGroup)
        m_Group = New_Group
        PropertyChanged "Group"
    End Property
    ---------------------------------------
    不能,因为VB6.0中,对对象的赋值必须使用Set语句。