

MDI(Multiple Document Interface) Form 프로그램 제작 시 폼의 화면 전환 시 사용자 인터페이스 컨트롤의 잔상 및 겹침(Overlap)이 보이는 현상이 발생하게 되어 프로그램의 완성도에 영향을 줄수 있어 이를 개선 할 수 있도록 SmartX Framework에서 SmartForm과 SmartInnerForm에 사용자 컨트롤의 잔상 및 겹침(Overlap)을 방지 하도록 기능을 추가하였습니다. 화면 전환 시 사용자 인터페이스 컨트롤 잔상 및 겹침(Overlap) 현상은 SmartX Component 뿐만 아니라 .NET Compact Framework 에서 제공되는 사용자 인터페이스 에서도 동일하게 발생되며 사용되는 컨트롤의 수와 배경 이미지에 따라서 쉽게 나타날 수 있는 현상입니다.

화면 전환 시 잔상 및 겹침현상(Overlap) 문제개선 동영상

배경이미지 및 사용자 인터페이스 Layout에 따른 SuspendLayoutlnterval 권장 속성값 |
||
---|---|---|
기존코드 | 변경코드 | |
속성 값 | SuspendLayout Interval → 0 (default) |
SuspendLayout Interval → 1 |
배경이미지 및 컨트롤에 따른 권장화면 |
화면 전환 시 컨트롤 잔상 및 겹침 과정 보임 각 화면들이 동일 색깔이나 이미지 사용 UI 컴포넌트의 위치가 동일한 경우 |
화면 전환 시 컨트롤 잔상 및 겹침과정 숨김 각 화면들이 다른 색깔이나 이미지 사용 UI 컴포넌트의 위치가 다른 경우 |
이미지 |
![]() |
![]() |
전환 속도 |
SuspendLayout Interval 1보다 상대적으로 빠름 |
SuspendLayout Interval 0보다 상대적으로 약간 지연 |
특징 | 화면전환 시 컨트롤 잔상 및 겹침 현상 발생 |
화면전환 시 컨트롤 잔상 및 겹침 현상 방지 |
배경이미지 및 사용자 인터페이스 Layout에 따른 SuspendLayoutlnterval 권장 속성값 |
|
---|---|
기존코드 | 변경코드 |
SuspendLayout Interval → 0 (default) |
SuspendLayout Interval → 1 |
화면 전환 시 컨트롤 잔상 및 겹침 과정 보임 각 화면들이 동일 색깔이나 이미지 사용 UI 컴포넌트의 위치가 동일한 경우 |
화면 전환 시 컨트롤 잔상 및 겹침과정 숨김 각 화면들이 다른 색깔이나 이미지 사용 UI 컴포넌트의 위치가 다른 경우 |
![]() |
![]() |
SuspendLayout Interval 1보다 상대적으로 빠름 |
SuspendLayout Interval 0보다 상대적으로 약간 지연 |
화면전환 시 컨트롤 잔상 및 겹침 현상 발생 |
화면전환 시 컨트롤 잔상 및 겹침 현상 방지 |
SmartForm속성 | SmartForm, SmartInnerForm 내부의 UI컨트롤 속성 |
|
---|---|---|
Enable | Visible | |
SuspendLayout Interval 0 |
사용가능 | 사용가능 |
SuspendLayout Interval 1 |
사용불가 | 사용불가 |
smartForm1.MainForm = this;
smartForm1.AddChildForm(smartInnerForm1);
smartForm1.AddChildForm(smartInnerForm2);
smartForm1.AddChildForm(smartInnerForm3);
// 생략 불가 반드시 최초에 명시적으로 호출 하시기 바랍니다.
smartForm1.Show(0);
SmartForm을 메인으로 하여 공통적인 사용자 인터페이스를 모든 폼에서 공통으로 사용될 경우 사용자 인터페이스 컨트롤의 InitVisible의 속성값을 False로 설정 하시면 공통으로 해당 사용자 인터페이스 컨트롤이 항상 화면에 표시되도록 처리합니다.



