首先要确定该对象是不是可持久化的。比如VB里的Font、Picture对象。如果可持久化,可通过PropertyBag对象来保存该对象。如propertybag.writeproperty "MyObject",MyObject保存后 propertybag.contents 属性包含了持久化以后的数据(byte()数组)

解决方案 »

  1.   


    我试了下阿花的方法,可以把picture对象存到byte()数组,但是普通的form,自定义类类对象都不行啊.
    怎么判断一个对象是不是可持久化的?
    也许有更通用的转换对象到byte()数组的方法?要是能强制持久化就好了.
      

  2.   

    不支持持久化的对象我们是没有办法直接持久化的,不过可以变通处理,例如持久化该对象的每一个属性。自定义类可以设置为支持持久化,把类模块的 Persistable 属性设为 Persistable ,然后实现类的下列方法。Private Sub Class_InitProperties()
        ' 初始化该对象属性
    End SubPrivate Sub Class_ReadProperties(PropBag As PropertyBag)
        ' 从持久化容器中还原属性
    End SubPrivate Sub Class_WriteProperties(PropBag As PropertyBag)
        ' 将该对象的属性保存到容器中
    End Sub
      

  3.   

    类模块没有Persistable属性啊.
    在类里边自定义的Persistable属性肯定没啥意义,像这样:
    Public Property Get Persistable() As VariantEnd PropertyPublic Property Let Persistable(ByVal vNewValue As Variant)End Property
      

  4.   

    Persistable属性在Active DLL 或者 Active EXE 中才有。