我是C#WinForms的新手。我做了一个继承Form类的类(EnhancedForm)。在EnhanceForm中,我放置了一些常用功能(例如验证,常用对象(如DataTable和字符串变量等),这样我就不必在窗体中一次又一次地编写相同的代码),这些功能我想在所有窗体中使用,然后在所有窗体中使用表单继承了此(EnhancedForm)。

在DAL(一个单独的类库)中,我有一个CommonDB类,它具有与DB相关的通用功能。对于数据库通信,我以各种形式制作了CommonDB对象。我想将CommonDB放在EnhancedForm中,这样我就不必在所有类中都使用它的对象。

这是我无法理解的事情。应用程序运行正常。但是,如果我尝试在设计视图中打开表单,则会出现错误。 “对象引用未设置为对象的实例。”我无法在设计模式下查看表单。如果我从EnhancedForm中删除CommonDb对象,并将其放在单独的表单中,它将正常工作并允许查看表单。

如果我编译并运行此错误,则不会出现。请在这方面指导并帮助我。

谢谢

最佳答案

您在EnhancedForm中有假定一个CommonDb对象的代码。在运行时,您可以创建它(可能在Form_Loaded中),但是在设计时却不存在。

最好,所有访问CommonDb的代码都应检查null和/或this.DesignMode

关于c# - C#WinForms,这是什么奇怪的错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4744952/

10-13 03:48