【问题标题】:Using the Visual Studio designer - "Object reference not set to an instance of an object" (Visual Studio 2008)使用 Visual Studio 设计器 - “对象引用未设置为对象的实例”(Visual Studio 2008)
【发布时间】:2009-06-23 15:09:47
【问题描述】:

我最近扔了一些 C# 代码来做一些小的外观改动。但是,当我在 Visual Studio 中打开一些文件时,我收到错误消息:

为了防止可能的数据丢失...

这些错误中的第一个是:

对象引用未设置为对象的实例。

我可以很好地跟踪堆栈跟踪,但我不确定在这种情况下我真正应该寻找什么。此外,我的堆栈跟踪的末尾有一个以“PageScroller..ctor()”结尾的调用。

根据 Google 的一些研究,我假设这意味着调用构造函数。这是真的吗?

【问题讨论】:

    标签: c# visual-studio visual-studio-2008


    【解决方案1】:

    对于一些自定义控件,可能是 PageScroller,并且显然是从构造函数开始的,您在设计模式中有一个错误。可能构造函数中有一些代码在设计模式下返回null,并且不检查null。

    【讨论】:

    • 在 C# 世界中是否常见(或至少可以接受)有许多页面可以正常工作但在设计器中看不到?似乎我正在查看的大部分页面都具有功能,只是没有出现在设计器中。总体而言,这将使我更容易修复问题,因此我不必学习设计器界面,但我想知道这是否会被视为“不好的做法”
    • 不,这是不可接受的,至少对我来说不是。并非每个控件都必须具有广泛的设计器支持,但至少应该可以在设计器中打开页面、设置属性并保存页面,并使这些属性保持不变。跨度>
    • 优秀。感谢您的帮助。
    • @C4ud3x:是什么让你认为它没有编译?显然,它确实做到了。设计师的世界是那种能拓宽思维——或者会损害思维的东西。
    • @JohnSaunders:我没有按 F5:D。可能是愚蠢的答案,但我的想法。据我了解,设计师不应该解雇我的活动。设计师是我设计的工作场所。不用于处理弹出消息框!?
    【解决方案2】:

    我偶尔会看到这样的问题。我开始将代码从构造函数移动到加载事件,这很有帮助。

    【讨论】:

      【解决方案3】:

      确保自动生成

      InitializeComponent();
      

      在尝试引用设计器中创建的任何对象之前调用方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-02
        • 1970-01-01
        • 2014-09-03
        • 1970-01-01
        • 2013-06-14
        • 2017-06-05
        • 2014-01-16
        • 2010-12-24
        相关资源
        最近更新 更多