如何将自定义控件添加到工具箱?

时间:2012-06-27 19:47:58

标签: c# visual-c++ toolbox visual-studio-2010

我已经基于Picturebox创建了一个自定义控件:

public class Timebar : System.Windows.Forms.PictureBox

如果我在Form的初始化方法中手动创建控件/设置所有值等,这是正常的。

现在我也在工具箱的顶部找到了这个:http://i.imgur.com/4KUc0.png

当我尝试通过msvc插入它时,我得到一个错误。

Failed to create component 'Timebar'.  The error message follows: 
'System.MissingMethodException: Constructor on type 'SC.Timebar' not found.

这对我的组件Timebar来说并不是一个大问题(因为我将手动添加该组件),但它与我想要制作的自定义Button类相比(更像是默认的)。

班上有一个构造函数:

public Timebar(Data refr)
{
    this._refr = refr;
}

如何修复上述错误?

谢谢,

~Tgys

1 个答案:

答案 0 :(得分:8)

设计器中使用的控件必须具有无参数构造函数。设计人员需要创建一个控件来显示并允许你操作它,但它不知道它应该如何调用需要参数的构造函数。

所以,我要做的是创建一个无参数构造函数,它使用默认值链接其他构造函数,即

class Foo
{
    public Foo() : this(SomeType.Value) { }
    public Foo(SomeType whatever) : { /* do stuff /* }
}