프로그래밍/C#

[C#] Winform/WPF 디자인모드(DesignMode) 구분하기

큐레이트 2023. 6. 28. 23:12
반응형

Winform 개발 시 UserControl 같은곳에서 Load Event시 Database Call 혹은 실제로 런타임 중에만 실행되야 되는 코드가 있을 경우 DesignMode로 구분이 필요합니다.

 

샘플코드

 

bool isInWpfDesignerMode   = (LicenseManager.UsageMode == LicenseUsageMode.Designtime);
bool isInFormsDesignerMode = (System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv");

// Winform 에서 폼에서 직접 사용시 아래와 같은 프로퍼티를 추가한후 사용한다.
private bool IsInFormsDesignerMode
{
    get
    {
        return (System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv");
    }
}

private void Form1_Load(object sender, System.EventArgs e)
{
    if (IsInFormsDesignerMode) // 디자인모드에서 실행을 막는다
        return;
        
    // 실제 로직
}

 

출처: https://stackoverflow.com/questions/1166226/detecting-design-mode-from-a-controls-constructor

 

반응형