본 문서는
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. MainForm 출력 및 Form_Load 이벤트 동작
2. OnFormLoadCompleting 이벤트에서 SmartSplash로 로딩창을 츨력하고 ChildForm을 인스턴싱 및 추가하는 작업 처리
3. OnFormLoadCompleted 이벤트에서SmartSplash 종료
메인 화면 출력 후에 ChildForm의 인스턴싱을 진행하기 때문에 메인 화면의 출력이 매우 빠르게 되어 검정 화면(Black Screen)이 가장 적게 표시됩니다.
실행 순서 및 측정 시간
private void Form1_Load(object sender, EventArgs e)
{
smartForm1.MainForm = this;
smartForm1.Show(0);
}
private void smartForm1_OnFormLoadCompleting()
{
frm2 = new Form2();
// ~… 중략…
frm10 = new Form10();
smartForm1.AddChildForm(frm2);
// ~… 중략…
smartForm1.AddChildForm(frm10);
private void smartForm1_OnFormLoadCompleted()
{
SmartX.SmartSplash.Finish();
4. 기존 방식과 개선 방식의 동영상 비교 자료