关于用户控件在开发状态拖入窗体设计界面执行Load事件中的代码出错
我先是做了一个用户控件,在其load事件中调用了开启数据采集线程的函数。
我的本意是希望在程序运行时,控件加载完毕后就自动开启数据采集。
但现在我在主窗体拖放该控件时也触发了他的Load事件导致VS崩溃。
请问如何才能避免在开发时拖放控件不执行load事件中的代码。
或者怎么写,才能让一段代码只在程序编译后运行时执行,在开发状态下不执行呢?
------解决方案--------------------很简单,
写一个静态变量
static bool isDevModel=true;
在你的逻辑代码里面加一句
//比如初始事件里面
if (isDevModel)
return
//逻辑代码
在入口点里面给静态变量赋值
Main函数
{
isDevModel=false;
}
说白了就是用个静态变量控制一下,设计模式不走逻辑代码,运行的时候再走。
------解决方案--------------------
什么平台?请一定要说清楚。
对于winform,你在load中应该先检测DesignMode属性,只有不是设计状态,才应该调用你的代码。
比如说你做一个DataForm控件,你肯定不能在设计时去读取数据库(否则不但会让设计器变慢,而且会死掉)。那么你就需要在DesignMode下显示一堆示例数据。微软的许多控件就是这样,在设计器里它给出示例数据,只有在运行时才真正去帮定数据。这就需要你判断是不是在设计器状态下。