我制作了一个自定义的滑动条控件,主要是为了练手。我知道我本可以/应该只继承我需要的内容而不是重复造轮子,但是在这个过程中我学到了很多东西。
现在,我有很多属性,除了一些图像属性外,所有属性都显示在设计器中。这是我拥有的,模仿其他工作属性(那些都是int和颜色之类的,它们都按预期工作...),所以也许我应该用其他方式处理图像。底线是,我不知道我在做什么:)
编辑:我的自定义控件在Windows Forms解决方案中(VC#2008 Express),澄清一下,我的问题是在设计时我的控件的某些属性(Image属性)没有显示在属性选项卡中。
编辑2:在阅读DependencyProperty并完全无法理解该概念后(我非常菜鸟,在编写代码或者你们大师所谓的黑魔法方面),我已经习惯了让IDE解决我的所有问题,我很高兴看到IDE愉快地显示我的其他属性,例如Color BarColor,int Value等等。为什么Image LeftImage会有所不同,许多标准控件都具有Image属性,也许我认为IDE可以找出我所有错误是天真的,但是肯定微软的人在每次设置其控件中的图像属性时都没有构建一个新的编辑器。我的赌注是,他们重复使用了某些东西,我也应该能够这样做。
我被卡住了:(
以下是我的糟糕CoD3Z:
顺便问一下,默认值和默认值属性之间有什么区别?
谢谢任何指导和帮助! /米卡尔
编辑:我的自定义控件在Windows Forms解决方案中(VC#2008 Express),澄清一下,我的问题是在设计时我的控件的某些属性(Image属性)没有显示在属性选项卡中。
编辑2:在阅读DependencyProperty并完全无法理解该概念后(我非常菜鸟,在编写代码或者你们大师所谓的黑魔法方面),我已经习惯了让IDE解决我的所有问题,我很高兴看到IDE愉快地显示我的其他属性,例如Color BarColor,int Value等等。为什么Image LeftImage会有所不同,许多标准控件都具有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
没有任何区别... - mickey