紧急求助!,用font作属性,怎么给他设置默认值??

goldsman 2009-03-20 01:55:34
就像默认的效果
...全文
146 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
deadshot123 2009-03-21
  • 打赏
  • 举报
回复
缺少构造函数
public MyExtendLabel()
{
this.Font = defaultFont;
}
deadshot123 2009-03-21
  • 打赏
  • 举报
回复
无法直接设置,变通方法如下

public class MyExtendLabel:System.Windows.Forms.Label
{
private static Font defaultFont = new Font("宋体", 15, FontStyle.Bold | FontStyle.Italic);

public override System.Drawing.Font Font
{
get
{
return (base.Font);
}
set
{
if (value == null)
base.Font = defaultFont;
else
{
if (value .Equals(System.Windows.Forms.Control.DefaultFont))
base.Font = defaultFont;
else
base.Font = value;
}
}
}

public override void ResetFont()
{
Font = null;
}



private bool ShouldSerializeFont()
{
return (!Font.Equals(defaultFont));
}
}
goldsman 2009-03-20
  • 打赏
  • 举报
回复
恩,不行啊
tweeger 2009-03-20
  • 打赏
  • 举报
回复
怎么样了?
还是不行吗?
goldsman 2009-03-20
  • 打赏
  • 举报
回复
无奈的顶
goldsman 2009-03-20
  • 打赏
  • 举报
回复
自己顶
goldsman 2009-03-20
  • 打赏
  • 举报
回复
恩,是自定义Control的属性

但是有两个参数,写了个转换器,比如 animal(tiger,white)
想设置它的属性默认值(就是在设计器里不加黑显示),应该怎么写呢?[DefaultValue(typeof(animal), ??)]
??位置只能有一个参数阿
tweeger 2009-03-20
  • 打赏
  • 举报
回复
图片看不到,不知道lz所说的是不是自定义Control的属性;
如果是,下面做法供参考:
1、自定义Control的属性如果是值类型那么可以使用:
[DefaultValue(typeof(??), ??)]来指定设计时的默认值;
2、如果是引用类型可以使用以下两个方法来控制默认值和Reset动作:
以Font属性为例:
可以先定义一个默认值:
private static readonly Font DefaultFont = SystemFonts.DefaultFont.Clone();
private bool ShouldSerializeFont()
{
return Font.Equals(this.Font, DefaultFont);//这里的比较函数可以自定义
}
private void ResetImage()
{
return DefaultFont.Clone();
}

goldsman 2009-03-20
  • 打赏
  • 举报
回复
求助高手..
goldsman 2009-03-20
  • 打赏
  • 举报
回复
自己顶
goldsman 2009-03-20
  • 打赏
  • 举报
回复
图片没出来,我再发一次


就是不加黑显示
有两个参数
[DefaultValue(typeof(??), ??)]
怎么写呢?
有两个参数阿,可是这里只有一个字符串
deadshot123 2009-03-20
  • 打赏
  • 举报
回复
font很多属性是只读的,只能new的时候去设置好

111,126

社区成员

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

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

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