我是 C# WinForms 的新手。我创建了一个继承 Form 类的类 (EnhancedForm)。在 EnhanceForm 中,我放置了一些我想在所有表单中使用的常用函数(如验证、常用对象,如 DataTable 和字符串变量等,这样我就不必在表单中一次又一次地编写相同的代码),然后我的所有表单forms 继承了这个 (EnhancedForm)。
在 DAL(一个单独的类库)中,我有一个类 CommonDB 类,它具有与数据库相关的通用函数。对于数据库通信,我制作了各种形式的 CommonDB 对象。我想将 CommonDB 放在 EnhancedForm 中,这样我就不必在所有类中创建它的对象。
这里发生了一些我无法理解的事情。应用程序运行良好。但是,如果我尝试在设计 View 中打开表单,则会出现错误。 “对象引用未设置到对象的实例。”我无法在设计模式下查看表单。如果我从 EnhancedForm 中删除 CommonDb 对象并将其放入单独的表单中,它可以正常工作并允许查看表单。
如果我编译运行这个错误就不会出现。请在这方面指导和帮助我。
谢谢
最佳答案
您在 EnhancedForm 中有假定 CommonDb 对象的代码。在运行时创建它(可能在 Form_Loaded 中),但在设计时它不存在。
最好,所有访问 CommonDb 的代码都应该检查 null 和/或 this.DesignMode
关于C# WinForms,这是什么奇怪的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4744952/