5

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

public class Timebar : System.Windows.Forms.PictureBox

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

现在我也在工具箱的顶部找到了这个: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

4

1 回答 1

8

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

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

class Foo
{
    public Foo() : this(SomeType.Value) { }
    public Foo(SomeType whatever) : { /* do stuff /* }
}
于 2012-06-27T19:52:34.453 回答