2009-02-27 123 views
2

我创建了一个自定义控件(从Control继承的类)。当我把它放在窗体上时,我可以在Visual Studio IDE上使用它。它显示我一个错误,我没有看到该表单。自定义控件和Visual Studio 2008 SP1

错误信息是这样的:La variable'ctrlImagen'noestádeclarada o no seasignónunca。

这是一个Compact Framework应用程序的winform。

我该如何解决这个问题? (它继承自UserControl,它完美地工作)

+0

你可以把错误信息在你的问题? – Migol 2009-02-27 17:23:44

+0

这是WPF或WinForms? – Micah 2009-02-27 17:25:42

回答

0

我把这个构造函数来解决问题: this.ClientSize =新尺寸(21,21);

我班上的beging是这样的:

 
    public class ControlMapa : Control 
    { 
     public ControlMapa() 
     { 
      this.ClientSize = new Size(21, 21); 
      ... 

谢谢

1

这听起来像你有一个在你的控制代码中的错误。这听起来像是一个运行时错误,阻止了渲染的控制。

重新读取您的代码,并寻找潜在的空指针异常,未分配的变量,堆栈溢出等错误是在他们的地方。

2

听起来很疯狂,但Visual Studio有选择地在设计器中为您的控件执行代码。首先要检查的是你的构造函数。确保你有一个空的默认构造函数,它是公开的,即使你从未计划使用它。之后,确保任何与布局事件(例如调整大小)相关的代码都可以使用,这些都可能是罪魁祸首,因为那些时候我的自定义控件在设计器中不起作用时总会遇到问题。

1

您的用户控件有没有公开的默认构造函数?我可以得到一个类似的错误“变量‘userControlX’要么是未声明或从未分配”如果构造是不公开的。

会需要更多的信息,虽然。

1

看起来在初始化逻辑中发生了设计时异常,该异常在表单初始化逻辑执行之前得到执行。一个很好的例子是NullPointerException由表单包含的用户控件的默认构造函数(或其调用的一个或多个方法)触发。