用户控件,用Public Name as type ,就可以获得一个设计状态下能在属性栏内修改的属性。
设计状态下,UserControl_WriteProperties事件也能捕获这个属性的修改。
但是,这个属性不能保存(就是把加载了那个控件的窗体关闭后打开,这个属性就又变成默认值了)。
各位大虾有这个经验吗?
我不想把这个属性保存在控件外,因为不同实例会冲突的。
设计状态下,UserControl_WriteProperties事件也能捕获这个属性的修改。
但是,这个属性不能保存(就是把加载了那个控件的窗体关闭后打开,这个属性就又变成默认值了)。
各位大虾有这个经验吗?
我不想把这个属性保存在控件外,因为不同实例会冲突的。
INI和注册表不可以吗?
或者你可能修改过这个属性的映射关系!很难说清,我以前也遇到过一次,想不起是怎么解决的了。
你试下将测试工程中的控件删除,重新建新的控件实例看看。个人认为对自定义控件还有些了解,你不妨贴些代码上来,我帮你看看。
保存在注册表、文件中吧,控件可不止一个实例,你怎么区分啊?
不过,标准控件的属性都是修改了就自动保存了的,所以肯定有办法解决的。
请高手赐教。
前者,有些是保存在*.ctx和ctl中,而后者是保存在控件所在窗口的frm和frx中,这是我开发的控件,所以我认为我有能力帮你解决问题,贴些代码吧。或者相信我就发些代码过来。
http://www.vb99.com/product/gifbutton/register.asp
Public Property Let AutoPlay(ByVal New_AutoPlay As Boolean)
m_AutoPlay = New_AutoPlay
PropertyChanged "AutoPlay"
End Property在WriteProperties中保存就行了。
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("AutoPlay", m_AutoPlay, m_def_AutoPlay)
End Sub