C#如何动态添加自定义属性?

康斯坦汀 2011-09-29 03:30:17
例,我有一个控件需要添加自定义属性。
public enum ResourceMode : byte
{
//未定义
Null = 0,
//通用
Common = 1,
//自身
Self = 2,
//外部
Ext = 3
}

[Description("资源类型:Null(空) Common(公用) Self(自身) Ext(外部)"), Category("ExProperty")]
public ResourceMode mResourceMode
{
get
{
return mEnmResourceMode;
}
set
{
mEnmResourceMode = value;
}

}

这样我可以在设计时,修改这个属性,但是这里的ResourceMode是一个枚举,能否实现这个
枚举动态生成,也就是说ResourceMode的内容来自于动态内容?

最好有代码示例。谢谢。
...全文
695 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
康斯坦汀 2011-09-29
  • 打赏
  • 举报
回复
7楼好像也不能解决问题,我说的不是运行时扩展PropertyGrid,
而是在VS2010设计时。

一般情况: 自定义一个控件,给这个控件加一个自定义属性,然后其他打开Form设计器,
拖入这个控件,PropertyGrid中多了一个自定义属性,这个属性的内容来自一个enum,
没问题。

我的情况:前面等同,后面,这个新加的属性里面的值来自的enum的内容是动态加入的。

康斯坦汀 2011-09-29
  • 打赏
  • 举报
回复
7楼有一定参考价值,不过够复杂的,先试试,解决了马上结贴。
sdl2005lyx 2011-09-29
  • 打赏
  • 举报
回复
“能否实现这个枚举动态生成”,为什么要动态,设置属性无非是让外面取值、传值。。。
Icedmilk 2011-09-29
  • 打赏
  • 举报
回复
首先你得文字里只出现了“属性”,没有出现“特性”

我想你的目的是不是实现:

运行期从Category这个特性中来取,如果是这样,就是可以实现的。

但是如果是运行时改变枚举类型的成员,就不好办
萤火架构 2011-09-29
  • 打赏
  • 举报
回复

以前讨论过:

http://topic.csdn.net/u/20100820/18/094e64b4-b1d3-4429-b8c6-6991ca24c2e5.html
wuguoxian001 2011-09-29
  • 打赏
  • 举报
回复
帮顶!~~~~不太会!~~
康斯坦汀 2011-09-29
  • 打赏
  • 举报
回复
同意2楼,如果是运行期就简单了,问题关键在于设计期。
萤火架构 2011-09-29
  • 打赏
  • 举报
回复
把枚举换成int可以。
大飞飞虫 2011-09-29
  • 打赏
  • 举报
回复
一个是设计期,一个是运行期;
单这样想就觉得有障碍
康斯坦汀 2011-09-29
  • 打赏
  • 举报
回复
看来这个问题有点难。
huayy 2011-09-29
  • 打赏
  • 举报
回复
看着100分而无能为力啊~
友情帮顶吧!

110,536

社区成员

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

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

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