【问题标题】:Custom Control and Visual Studio 2008 SP1自定义控件和 Visual Studio 2008 SP1
【发布时间】:2009-02-27 17:22:33
【问题描述】:

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

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

这是一个紧凑框架应用程序的 winform。

我该如何解决这个问题? (它的类继承自 UserControl 它工作得很好)

【问题讨论】:

  • 你能在你的问题中输入错误信息吗?
  • 这是 WPF 还是 WinForms?
  • 从未分配过的变量 controlMap。西班牙语:La variable 'controlMap' no está declarada o no se asignó nunca.
  • ASP.Net?表格? WPF?什么错误?

标签: winforms visual-studio-2008 ide custom-controls


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    听起来您的控件代码中存在错误。这听起来像是阻止控件呈现的运行时错误。

    重新阅读您的代码并寻找潜在的空指针异常、未分配的变量、堆栈溢出等。错误就在它们的某个地方。

    【讨论】:

      【解决方案3】:

      您的用户控件是否有可能没有公共默认构造函数?如果构造函数不是公共的,我会收到类似的错误“变量 'userControlX' 未声明或从未分配”。

      不过需要更多信息。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

          我把它放在构造函数上来解决问题: this.ClientSize = new Size(21, 21);

          我班的开场白是这样的:

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

          谢谢!

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-04-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-05-12
            • 1970-01-01
            • 1970-01-01
            • 2010-09-15
            相关资源
            最近更新 更多