C# WinForms,这是什么奇怪的错误?

标签 c# .net winforms .net-3.5

我是 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/

相关文章:

c# - 在异步方法中不等待任务的注意事项

vb.net - 如何在 GridView 中为网格单元格着色?

C# 如何解决 HtppWebResponse return Could not establish trust relationship for the [SSL/TLS] secure channel?

c# - 使用 IBindingList 在 WinForms 中进行数据绑定(bind)在空列表上失败

c# - 如何在 C# 6.0 字符串插值中输入引号字符

.net - swapExactTokensForETHSupportingFeeOnTransferTokens 有一个路径参数,我知道我必须首先放置代币的合约地址

c# - .NET 实例方法中的 this == null - 为什么这可能?

c# - 从 WinForms 应用程序检查 .Net 框架版本

wpf - 我可以在 VS2008 中开发也可以在 Mac 上运行的桌面应用程序吗?什么方法?

c# - 在 C# 中实现试用应用程序