C# 加载事件未触发

C# 加载事件未触发,c#,winforms,sqlite,C#,Winforms,Sqlite,我正在重建一个我最初在VisualStudio的SharpDevelop中编写的项目。相关代码在SharpDevelop中工作 以下步骤应说明问题: 创建新项目 添加对System.Data.SQLLite的引用(我正在使用.NET 4.5的DLL) 在主窗体中,添加using语句: 使用System.Data.SQLite 在窗体的加载事件中,附加事件处理程序 private void PriceType2_Load(object sender, EventArgs e) {

我正在重建一个我最初在VisualStudio的SharpDevelop中编写的项目。相关代码在SharpDevelop中工作

以下步骤应说明问题:

  • 创建新项目
  • 添加对System.Data.SQLLite的引用(我正在使用.NET 4.5的DLL)
  • 在主窗体中,添加using语句:

    使用System.Data.SQLite

  • 在窗体的加载事件中,附加事件处理程序

        private void PriceType2_Load(object sender, EventArgs e)
    {
    
        MessageBox.Show("Load event hNDLER");
        SQLiteConnection con;
        //con = new SQLiteConnection();
    
    }
    
  • 这是可行的,但如果取消注释下一行,则不会

            private void PriceType2_Load(object sender, EventArgs e)
        {
            //SetDisableColors();
            //ToggleEnableOff();
            MessageBox.Show("Load event");
            SQLiteConnection con;
            con = new SQLiteConnection();
    
        }
    
    表单将打开,但不显示消息框。正如我所说,它在SharpDevelop中运行良好。如果你想知道,我正在迁移这个项目,因为我需要一个成熟的报表查看器


    有什么想法吗?

    我刚刚更改了对.NET 4.0程序集的引用(尽管我的开发机器和所有其他机器都有4.5),它可以工作。我记得在某个地方读到4.5 DLL有问题,但我不知道是什么问题


    感谢所有的提示。

    在表单加载事件中放置MessageBox从来都不是一个好主意。。。。。我通常尝试使用窗体的重写而不是事件处理程序来处理窗体自己的事件。在这种情况下,请替代表单的OnLoad方法。请注意,我不是说这是你问题的根源。只是指出一种我觉得更好的做法。如果您(默认情况下,它只在“用户未处理”时中断)在加载事件中是否会引发异常?