728x90
1. 리빌드 한 후, 디자이너를 실행시켜본다.
2. Visual Studio을 재기동한다.
3. 컴포넌트_Load 이벤트 확인
디자인 모드에서도 컴포넌트_Load가 호출되는 듯하다. 따라서, 컴포넌트_Load 이벤트에서 DB접속등의 많은 일을 하는 경우(Control이 Load되는 시점에 DB로부터 Control에 속한 ComboBox나 Grid를 초기화하는 코드들을 넣어야 할 때), 디자인 모드에서 문제 발생 가능하다. 이 경우, 디자인 모드에서 실행되지 말아야 한다면, 컴포넌트_Load 이벤트에 DesignMode인지 확인해주는 작업이 필요하다.
// Program.cs
[STAThread]
private static void Main()
{
Util.SetIsDesignMode(); // 맨 처음 프로그램이 구동될 때, Util성 파일에 DesignMode를 세팅해준다.
// ... 원래 Main()에 있어야 하는 메소드들
}
// Util.cs
public static class GlobalUtil
{
public static bool IsDesignMode = true;
public static void SetIsDesignMode() => IsDesignMode = LicenseManager.UsageMode == LicenseUsageMode.Designtime;
}
필요 시에, if (Util.IsDesignMode) return; 와 같이 코드를 추가해서 사용해준다.
아님, if (LicenseManager.UsageMode == LicenseUsageMode.Designtime) return; 정도만 해줘도 된다.
[출처]
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=nosleep&logNo=220225340166
https://ldg119.tistory.com/377
https://supportcenter.devexpress.com/ticket/details/t546135/repositoryitem-licensemanager-usagemode-is-licenseusagemode-runtime-during-designtime-in
728x90
'C#' 카테고리의 다른 글
STAThread (0) | 2022.12.02 |
---|---|
Background에서 메소드 실행하는 방법 (0) | 2022.12.02 |
단일 프로세스 실행 (0) | 2022.11.30 |
ref를 사용하는 경우 (0) | 2022.11.30 |
대용량 리스트를 처리하면서 느낀 점 (0) | 2022.11.30 |