如何检测用户控件是在IDE中,在调试模式下还是在已发布的EXE中运行?

Ric*_*ACC 8 c# ide user-controls

我有一个用户控件,我正在构建.它的目的是向用户显示类的状态.显然,这并不重要,并且当控件在IDE中运行时会降低速度,就像将其添加到表单中一样.

解决此问题的一种方法是在运行时创建控件并将其添加到窗体的控件集合中.但这似乎并不完美.

有没有办法在控件中设置一个标志,以便它可以根据它的运行方式跳过某些代码段?

ps我正在使用C#和VS 2008

TcK*_*cKs 15

public static bool IsInRuntimeMode( IComponent component ) {
    bool ret = IsInDesignMode( component );
    return !ret;
}

public static bool IsInDesignMode( IComponent component ) {
    bool ret = false;
    if ( null != component ) {
        ISite site = component.Site;
        if ( null != site ) {
            ret = site.DesignMode;
        }
        else if ( component is System.Windows.Forms.Control ) {
            IComponent parent = ( (System.Windows.Forms.Control)component ).Parent;
            ret = IsInDesignMode( parent );
        }
    }

    return ret;
}
Run Code Online (Sandbox Code Playgroud)


Ben*_*pka 5

我在另一篇文章中找到了这个答案,它似乎更容易并且更适合我的情况。

从控件的构造函数中检测设计模式

using System.ComponentModel;

if (LicenseManager.UsageMode == LicenseUsageMode.Runtime)
{
}
Run Code Online (Sandbox Code Playgroud)