■ Form 클래스에서 애플리케이션 실행시 메인 폼을 바로 숨기는 방법을 보여준다.
1. Load 이벤트시 Visible 속성을 false로 설정하는 방법
• Visible 속성은 Load 이벤트시 설정의 의미가 없다.
• Load 이벤트시 Visible = false가 실행되지만,
내부적으로 Load 이벤트를 호출한 SetVisibleCore 메소드에 의해 Visible 속성이 다시 true로 설정되기 때문이다.
• 결론적으로 폼이 숨겨지지 않고 표시된다.
2. Shown 이벤트 또는 타이머를 이용해 Visible 속성을 false로 설정하는 방법
• 잠시나마 보였다가 숨겨지는 깜박임 현상이 발생한다.
3. SetVisibleCore 메소드를 재정의하는 방법
• 문제점은 폼을 다시 보이게 할 방법이 없다는 점이다.
▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#region 표시 설정하기 - SetVisible(visible) /// <summary> /// 표시 설정하기 /// </summary> /// <param name="visible">표시 여부</param> protected override void SetVisibleCore(bool visible) { base.SetVisibleCore(false); } #endregion |
4. SetVisibleCore 메소드와 Dummy 폼을 사용하는 방법
• 메인 폼을 Dummy 폼으로 설정하고 Application.Run 메소드에서 호출한다.
• Dummy 폼은 SetVisibleCore 메소드를 재정의해서 숨긴다.
• 실제 작업을 하는 폼이 메인 폼의 역할을 수행하게 한다. 예를 들어 Dummy 폼은 NotifyIcon과 ContextMenu만 포함하고 모든 기능은 실제 메인 폼에서 수행하는 구조를 만든다.