【发布时间】:2011-08-22 05:35:59
【问题描述】:
我制作了一个自定义轨迹栏控件,主要是作为练习。我知道我可以/应该继承我需要的东西,而不是重新发明轮子,但我在努力中学到了很多东西。 现在,我有很多属性,除了几个图像属性之外,它们都显示在设计器中。这就是我所拥有的,以其他工作属性为模型(那些是整数和颜色等等,它们都按预期工作......),所以也许我应该以其他方式做图像。底线,我不知道我在做什么:)
编辑:我的自定义控件位于 Windows 窗体解决方案 (VC# 2008 Express) 中,澄清一下,我的问题是我的某些控件属性(图像属性)没有显示在设计时的属性选项卡中。
编辑 2: 在阅读了 DependencyProperty 之后完全无法理解这个概念(我对 programmin teh codez 非常陌生,或者你的大师称之为黑色巫术魔法??)。我已经习惯让 IDE 解决我所有的问题,我很高兴看到 IDE 愉快地显示我的其他属性,例如Color BarColor、int Value 等。为什么Image LeftImage 会有所不同,a许多标准控件都有 Image 属性,也许我天真地认为 IDE 可以解决我所有的错误,但微软的人肯定不会在每次必须在他们的控制。我敢打赌,他们重用了一些东西,我应该也能做到。
我被困住了:(
这是我的蹩脚 CoD3Z:
private Image _LeftImage;
/// <summary>
/// Sets the small image appearing to the left of the trackbar
/// </summary>
[Description("The small image appearing to the left of the trackbar"),
Category("Appearance"),
DefaultValue(typeof(Image),"null"),
Browsable(true), EditorBrowsable(EditorBrowsableState.Always)]
public Image LeftImage
{
private get { return _LeftImage; }
set
{
if (value.Height != 16 || value.Width != 16)
{
_LeftImage = new Bitmap(value,new Size(16,16));
}
else _LeftImage = value;
Invalidate();
}
}
顺便问一下,DefaultValue 和 DefaultValueAttribute 有什么区别?
感谢您的任何指点和帮助! /迈克尔
【问题讨论】:
-
“DefaultValue 和 DefaultValueAttribute 之间的区别” - 它们实际上是同一回事。当您向某事物添加属性时,您可以省略“属性”后缀。 [DefaultValue(...)] 创建 DefaultValueAttribute 类的实例。
-
那么,我是不想创建一个实例,还是它已经实例化了?我会试试另一个看看;)
-
好的,从您的解释中可以得出结论,从
DefaultValue更改为DefaultValueAttribute并没有什么不同... -
好的,所以我找到了答案,但我无法回答自己的问题,因为我是新用户。无论如何,大多数(如果不是所有)微软类都包含一个编辑器,所以在我的情况下它应该很简单:msdn.microsoft.com/en-us/library/…>
标签: c# winforms properties custom-controls designer