我先是做了一个用户控件,在其load事件中调用了开启数据采集线程的函数。
我的本意是希望在程序运行时,控件加载完毕后就自动开启数据采集。
但现在我在主窗体拖放该控件时也触发了他的Load事件导致VS崩溃。
请问如何才能避免在开发时拖放控件不执行load事件中的代码。
或者怎么写,才能让一段代码只在程序编译后运行时执行,在开发状态下不执行呢?

解决方案 »

  1.   

    很简单,
    写一个静态变量  static bool isDevModel=true;在你的逻辑代码里面加一句//比如初始事件里面
      if (isDevModel)
         return
    //逻辑代码在入口点里面给静态变量赋值 Main函数
    {
    isDevModel=false;
    }说白了就是用个静态变量控制一下,设计模式不走逻辑代码,运行的时候再走。
      

  2.   

    什么平台?请一定要说清楚。对于winform,你在load中应该先检测DesignMode属性,只有不是设计状态,才应该调用你的代码。比如说你做一个DataForm控件,你肯定不能在设计时去读取数据库(否则不但会让设计器变慢,而且会死掉)。那么你就需要在DesignMode下显示一堆示例数据。微软的许多控件就是这样,在设计器里它给出示例数据,只有在运行时才真正去帮定数据。这就需要你判断是不是在设计器状态下。
      

  3.   

    当你想在vs调试器下运行之前,是不是必须要改这个值?那么立刻vs就先崩溃了。