c# - 在设计器中打开用户控件时 Visual Studio 中的错误

标签 c# visual-studio-2008 visual-studio-designer

背景: 我创建了这个用户控件。在用户控件的构造函数中,我调用了一个从数据库中检索一些值的函数。如果在检索值时发生错误,则会显示一个解释错误的消息框。到目前为止一切顺利。

问题: 我创建了一个包含我的 UserControl 的表单(除其他元素外)。现在,当我打开此表单(或什至 UserControl 本身)时,将调用构造函数(我想这样可以准确绘制它),并且由于数据库不可用,将显示消息框(如上所述)。

如何防止这种情况发生?

我只想说清楚:代码在运行时运行良好。一切都按设计进行。它仅在 Visual Studio 的设计器 View (如果重要,则为 2008 SP1)中出现问题。但是在 Designer 中它很糟糕,尤其是现在当应用程序在连接失败时尝试重新连接时。每次我进入设计器模式时,我的 Visual Studio 都会卡住大约 20 秒(重新连接超时),这会终止我的工作进程。

最佳答案

您可以检查您的控件是否在设计模式下显示:

http://msdn.microsoft.com/en-us/library/system.componentmodel.component.designmode.aspx

/编辑:正如人们在对另一个答案的评论中指出的那样,DesignMode 属性在构造函数中不可用。因此,最好的解决方案可能是将数据库内容移动到“加载”之类的事件中,并在那里使用 DesignMode 属性。

关于c# - 在设计器中打开用户控件时 Visual Studio 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1567066/

相关文章:

visual-studio-2008 - VS2008 安装工程 : Shared (By All Users) Application Data Files?

wpf - 在 WPF 中创建自定义设计时集合编辑器

vb.net - 使用 Visual Studio Designer 时,如何将 WinForms 控件的类型更改为从原始类型派生的新类型?

C#客户端如何调用wsdl文件

C#,System.Window.Controls 和 System.Windows.Forms 之间的区别?

c# - Linq to 实体扩展方法内部查询 (EF6)

c# - 在 Windows Phone 8.1 中下拉刷新

c++ - VC++ libcurl .lib 大小

c# - Visual Studio 用户控件设计

c# - 使用 Json.NET 序列化子类