问了几天都没人解决的问题!

凨叔 2005-04-16 11:44:28
比如System.Windows.Forms.Button控件有属性BackColor,有一自定义控件继承Button。
请问如何将自定义控件继承的BackColor的默认值改为Color.Blue?
难道我必须写一个新的方法
[DefaultValue(typeof(Color), "Blue")]
public new Color BackColor
{
get
{
return base.BackColor;
}
set
{
base.BackColor = Color.Blue;
}
}
如果我有很多属性要重新设定默认值的话,是不是都要这样做啊?这样岂不是太累了。
...全文
277 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
速马 2005-04-21
  • 打赏
  • 举报
回复
嗯,没看你后面的那条回复
PropertyGrid判断一个属性的值是否为默认值,是根据DefaultValueAttribute的设定
所以你不重新设定DefaultValueAttribute,如何做到?

不一定要override,用new关键字也是可以的
[DefaultValue(Color.Black)]
public new Color BackColor{get...set...}

而这个属性的默认值,不一定要增加一个field,像我上面说的在构造函数内设定即可
速马 2005-04-21
  • 打赏
  • 举报
回复
有延迟嗯
凨叔 2005-04-21
  • 打赏
  • 举报
回复
为什么结帖以后看不到结帖的分数?
凨叔 2005-04-21
  • 打赏
  • 举报
回复
看来只能用这种办法了,虽然麻烦点,还是多谢大家!
凨叔 2005-04-20
  • 打赏
  • 举报
回复
这种方法已经试过,在构造函数里写的话,设计器中还是会生成这些不是默认值的代码。
速马 2005-04-20
  • 打赏
  • 举报
回复
你可以重写其构造函数
在构造函数内一次设定完
这样可以简单不少嗯
凨叔 2005-04-20
  • 打赏
  • 举报
回复
斑竹,我的问题要求置顶。大家帮忙顶,分不够再加。
凨叔 2005-04-19
  • 打赏
  • 举报
回复
init控件的时候赋默认值比较累,因为有的窗体上控件实在是太多,而且窗体也比较多。

其实我的目的是为了做控件的Theme,包括外观和颜色等等。现在我的做法都是自定义一些控件去继承基本控件,然后窗体上加控件的时候加的都是自定义的,主要有时候想该自定义控件的Theme方案,能够让所有的窗体如果用到这些控件就自动更新Theme,所以有此想法。

不知各位有没有更好的方法?
兔子-顾问 2005-04-19
  • 打赏
  • 举报
回复
我觉得楼上的方法比较好了。否则,你就init控件的时候去把你希望的默认值赋给属性把。然后调用你这个控件,ok?
jin0813 2005-04-19
  • 打赏
  • 举报
回复
支持你!
hanyaocsdn 2005-04-19
  • 打赏
  • 举报
回复
study
凨叔 2005-04-19
  • 打赏
  • 举报
回复
解决的送上高分,不会的帮忙顶一下,谢谢兄弟们!
凨叔 2005-04-18
  • 打赏
  • 举报
回复
up
凨叔 2005-04-18
  • 打赏
  • 举报
回复
To: zhongwanli(一心只为做民工。。。。头!!!!)

我拿BackColor属性出来只是作说明用的,因为Control.BackColor被定义为public override,所以这里向这样用当然是没问题。
但如果是其它没有被定义为public override 的属性呢?比如DialogResult.
zhongwanli 2005-04-18
  • 打赏
  • 举报
回复
private Color _BackColor = Color.Black;
[DefaultValue(Color.Black)]
public override Color BackColor
{
get
{
return this._BackColor;
}
set
{
base.BackColor = value;
}
}

这样还不行吗
凨叔 2005-04-18
  • 打赏
  • 举报
回复
up
凨叔 2005-04-17
  • 打赏
  • 举报
回复
问题是有些属性不是能够override的
wangsaokui 2005-04-17
  • 打赏
  • 举报
回复
public override Color BackColor
凨叔 2005-04-17
  • 打赏
  • 举报
回复
兄弟们,帮忙啊!
凨叔 2005-04-17
  • 打赏
  • 举报
回复
还是没人回答!
加载更多回复(4)

110,545

社区成员

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

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

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