如何找出导致 NullReferenceException 的原因

本文关键字:NullReferenceException 何找出 | 更新日期: 2023-09-27 18:35:10

我正在使用包含第三方DataGridView的c#编写一个.net程序。我设法 - 我想要的数据如何,添加/删除列和行,对用户选择做出反应等等 - 到目前为止一切正常。现在,当我打开标准OpenFileDialog时,我的问题就来了 - 它按预期打开,我也可以选择文件。但是当我关闭它(无论我使用"打开"还是"取消"按钮),然后尝试在 GridView 中选择列和行时,我在 System.Windows.Forms.dll 中得到一个 NullReferenceException。我不明白为什么打开和关闭标准对话框会导致此问题。我阅读了以下问题,它回答了但无法在那里发表评论 - 所以我不得不打开一个新问题:

什么是 NullReferenceException,如何解决它?

我想我理解什么是 NullReferenceException,但如果你能解释一下如何找出导致它的对象,那就太好了。那么如何调试这个问题呢?我什至不知道我的代码中是否有问题,或者它是否是第三方扩展中的错误。

谢谢!

编辑,14.10.2013:

我认为回扔有效,但它将我指向这一行(见箭头):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MyProg
{
    static class Program
    {
        /// <summary>
        /// Der Haupteinstiegspunkt für die Anwendung.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
   --->     Application.Run(new MyProgMain());
        }
    }
}

不幸的是,这对我没有帮助 - 当调试器突出显示此行时是什么意思?

如何找出导致 NullReferenceException 的原因

启用首次机会例外:

在 Visual Studio IDE 上,按 Esc + Cntl + Alt + E,然后选中公共语言运行时异常的"抛出"复选框