Dim m_Data As Variant
Public Property Get Data() As Variant
Data = m_Data
End PropertyPublic Property Let Data(Byval vNewValue As Variant)
m_Data = vNewValue
End Property这样做不行

解决方案 »

  1.   

    Dim m_Data() As Byte
    Public Property Get Data() As Variant
    Data = m_Data
    End PropertyPublic Property Let Data(Byval vNewValue As Variant)
    m_Data = vNewValue
    End Property
      

  2.   

    首先在类模块CData中设定属性
    Dim m_Data As Variant
    Public Property Get Data() As Variant
        Data = m_Data
    End PropertyPublic Property Let Data(Byval vNewValue As Variant)
        m_Data = vNewValue
    End Property在窗体中,先创建一个CData对象
    Dim ObjData As New CData然后引用它的属性值
    ObjData.Data="data1"'直接调用Let Data属性过程
      

  3.   

    你可以不改变你在OCX中的定义,但要在赋值和读取时改变一下你的方式,不是直接将值传递,而是将你要保存的二进制值转成字节数组就行了。点头的方法是行不通的,不能在ocx中将中间变量定义为数组,因为可能会产生错误。如:
    先定义一个字节数组 dim b() as byte。然后将你的数据存入这个数组,这需要根据你的情况采用不同的方式,然后就可以了。
    读取时,usercontrol.data返回的也是字节数组,因此你还需要根据你的需要再次转换。