본 문서는
1. 문제 설명
2. 기존 방식(화면 로딩 중인지 식별 불가)
3. 개선 방식(화면 로딩 중인지 빠르게 식별 가능)
3-1. [CASE-1] SmartSplash를 사용하는 방법
3-2. [CASE-2] SmartSplash + SmartForm Event를 사용하는 방법
4. 기존 방식과 개선 방식의 동영상 비교 자료
순서로 진행합니다.
IEC-Series를 RunTime 모드(부팅 후 응용 프로그램 실행 모드)로 부팅하는 경우 프로그램을 실행하고 나서 메인 화면 출력(=프로그램 로딩 완료)까지 일정 시간이 걸리며 이 동안 화면은 검정 화면(Black Screen)으로 표시되어
사용자는 프로그램이 로딩 중인지 알기 어렵습니다.
이 문제를 해결하기 위해 SmartSplash 기능과 SmartForm의 Loading 관련 이벤트 기능을 사용하면 됩니다.
- SmartSplash 기능 사용 : 검정 화면(Black Screen)에서 로딩화면이 출력되어 로딩중임을 확인할 수 있습니다.
- SmartSplash + SmartForm Event 사용 : 검정 화면(Black Screen)에서 메인 화면이 출력된 뒤 로딩화면이 출력되어 빠른 메인 화면 출력을 확인할 수 있습니다.
2. 기존 방식(화면 로딩 중인지 식별 불가) 설명
Form_Load() 이벤트 내에서 자식 폼 생성
실행 순서 및 측정 시간

private void Form1_Load(object sender, EventArgs e)
{
frm2 = new Form2();
// ~… 중략…
frm10 = new Form10();
smartForm1.MainForm = this;
smartForm1.Show(0);
// 다른 폼을 자식 폼으로 설정
smartForm1.AddChildForm(frm2);
// ~… 중략…
smartForm1.AddChildForm(frm10);
}
3. 개선 방식(화면 로딩 중인지 빠르게 식별 가능) 3-1. [CASE-1] SmartSplash를 사용하는 방법 설명
Form 생성자에서 SmartSplash를 로딩하고 Form_Load() 이벤트 내에서 메인 화면 출력(=프로그램 로딩 완료) 시점에서 SmartSplash를 종료합니다.
특징
검정 화면(Black Screen)에서 로딩 화면이 출력되기 때문에 로딩중인 것을 확인할 수 있습니다.
실행 순서 및 측정 시간

public Form1()
{
InitializeComponent();
private void Form1_Load(object sender, EventArgs e)
{
frm2 = new Form2();
// ~… 중략…
frm10 = new Form10();
smartForm1.MainForm = this;
smartForm1.Show(0);
// 다른 폼을 자식 폼으로 설정
smartForm1.AddChildForm(frm2);
// ~… 중략…
smartForm1.AddChildForm(frm10);
// SmartSplash 종료
SmartX.SmartSplash.Finish();
}
3-2. [CASE-2] SmartSplash + SmartForm Event를 사용하는 방법 설명
1. Form 생성자에서 SmartSplash를 로딩하고 Form_Load() 이벤트 내에서 메인 화면 출력
2. 메인 화면이 나온 상태에서 OnFormLoadCompleting 이벤트에서 ChildForm을 인스턴싱 및 추가하는 작업 처리
3. OnFormLoadCompleted 이벤트에서 SmartSplash 종료
특징
메인 화면 출력 후에 ChildForm의 인스턴싱을 진행하기 때문에 메인 화면의 출력이 매우 빠르게 되어 검정 화면(Black Screen)이 가장 적게 표시됩니다.
실행 순서 및 측정 시간

public Form1()
{
InitializeComponent();
private void Form1_Load(object sender, EventArgs e)
{
smartForm1.MainForm = this;
smartForm1.Show(0);
}
private void smartForm1_OnFormLoadCompleting()
{
// ~… 중략…
frm10 = new Form10();
smartForm1.AddChildForm(frm2);
// ~… 중략…
smartForm1.AddChildForm(frm10);
private void smartForm1_OnFormLoadCompleted()
{
SmartX.SmartSplash.Finish();
4. 기존 방식과 개선 방식의 동영상 비교 자료