【问题标题】:How to make a UserControl inert at design time?如何在设计时使 UserControl 惰性?
【发布时间】:2010-09-28 01:37:30
【问题描述】:
我有一个 UserControl 可以做一些很酷的视频捕捉工作。现在我把那个控件放在一个表单上——它马上就开始工作了,即使是在设计时!这是非常令人欣慰的,所有看到它工作,但它在设计时有点烦人,它减慢了我的速度。我知道在设计时在另一个表单/控件上使用 UserControl 时它实际上处于运行时,但我希望能够在它不在实际运行的应用程序中时将其关闭。
最好的方法是什么?
【问题讨论】:
标签:
c#
winforms
user-controls
【解决方案1】:
将类似这样的代码放入您的控件中:
if(DesignMode)
return;
DesignMode 是告诉您正在设计器中运行的属性。
【解决方案2】:
UserControl 有一个名为 DesignMode 的属性 - 如果这是真的,您可以跳出任何控制逻辑。
或者,如果您的项目的设计方法适合它,您可以在其上实现绑定,将所有工作逻辑移植到非 UI 控制器类,并且只在构造函数中设置控制器 DataSource。设计者通常意识到它无法预测分配给它的实例会是什么,所以不会尝试。