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