十万火急:自定义控件的属性值无法保存,各位大虾请帮忙!!!

hhuan 2004-11-19 04:41:34
具体的问题链接如下
http://community.csdn.net/Expert/topic/3565/3565339.xml?temp=.6033289

请帮忙!!
...全文
217 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuandhu 2005-06-24
  • 打赏
  • 举报
回复
www.dnc.com.cn 下一个日期控件源码看看就知道答案了
AhBian 2004-11-29
  • 打赏
  • 举报
回复
可能是我原先没能完全理解楼主的意思。
有关 TypeConverter 的重写,你可以参考以下帖:
http://community.csdn.net/Expert/topic/3581/3581914.xml?temp=.6428644

不必使用 struct 代替 Component,因为 struct 有相当的局限性。
TypeEditor 是针对 UI 控件实现的可视化设计器,也有其用武之地。
hhuan 2004-11-29
  • 打赏
  • 举报
回复
问题已经解决:
1、用struct代替Component实现可展开的属性更简捷
2、注意TypeConvert的重写
3、MSDN中关于这部分的例子把Editor作为控件类的Attribute,造成理解上的困惑,
实际可以直接应用在作为属性的struct或者class
hhuan 2004-11-22
  • 打赏
  • 举报
回复
AhBian(阿扁) :
谢谢你,我加了,问题依旧。你哪有例子吗,给我发一个!!
hdyxing@hotmail.com
AhBian 2004-11-21
  • 打赏
  • 举报
回复
请添加以下两个方法:

public bool ShouldSerializeTagSource
{
return (s_tag != 一个默认值);// 由对象实例化时的缺省值
// 直接返回 true 也可。
}

public void ResetTagSource()
{
s_tag = 默认值;
// Tag_Source = 默认值; // 如果需要引发属性值改变事件或其他处理
}

反编译一下 .NET 的类库,会发现 Control 的 Font 属性的设计时保存值就是如此实现的。
具体信息请参见 System.ComponentModel.DefaultValue 特性的描述。
Jeff20040819 2004-11-21
  • 打赏
  • 举报
回复
顶 接分
constantine 2004-11-19
  • 打赏
  • 举报
回复
up
hhuan 2004-11-19
  • 打赏
  • 举报
回复
来人呀!!!
520NET 2004-11-19
  • 打赏
  • 举报
回复
LG
hhuan 2004-11-19
  • 打赏
  • 举报
回复
CSTerry(Terry):
我加了,还是不行,劳驾打开那个链接看看我的问题,拜托!!
CSTerry 2004-11-19
  • 打赏
  • 举报
回复
试试在
InitializeComponent();
后面加上一句
this.SetStyle(ControlStyles.UserPaint,true);
Jeff20040819 2004-11-19
  • 打赏
  • 举报
回复
学习 接分

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧