내용으로 건너뛰기
사용자 도구
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
English
현재 위치:
index
»
jcontrols_cf35
»
setting_properties_at_runtime
jcontrols_cf35:setting_properties_at_runtime
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== Setting Properties at Runtime ====== 기본적으로 Visual Studio의 모든 콘트롤들은 속성이 바뀔때마다 바뀐내용을 그즉시 표시합니다. 때로는 이것이 오히려 이상한 결과를 초래하기도 합니다. ===== 문제가 되는 상황 ===== 예를들어, PLC((프로그래머블 로직 콘트롤러))에서 읽어온 값을 화면에 표시하는 경우에, 읽어온 값이 그 즉시 콘트롤에 반영되어 아래와 같이 화면에 표시됩니다. 그리는 과정이 모두 보이게 됨으로써 오히려 혼란스러워 보입니다. <code csharp> void UpdateLamp(bool isOn) { // Lamp will redraw here... lamp.IsOn = isOn; // ...here... lamp.Text = lamp.IsOn ? "ON" : "OFF"; // ...and here... lamp.Font = new Font(Font.Name, Font.Size, lamp.IsOn ? FontStyle.Bold : FontStyle.Regular); } </code> {{ .:suspenddrawoff.mp4?427x240 }} ===== 해결방법 ===== 이 경우, ''SuspendDraw'' 메소드 함수를 이용해서 그리는 과정이 보이지 않도록 한뒤, 콘트롤 갱신이 모두 끝난뒤 ''ResumeDraw'' 메소드 함수를 이용해서 최종결과를 한번에 표시하도록 하면, 아래 처럼 깔끔하게 동작되는 화면을 보실 수 있습니다. <code csharp> void UpdateLamp(bool isOn) { lamp.SuspendDraw(); // lamp will not redraw here lamp.IsOn = isOn; // ...or here... lamp.Text = lamp.IsOn ? "ON" : "OFF"; // ...or here... lamp.Font = new Font(Font.Name, Font.Size, lamp.IsOn ? FontStyle.Bold : FontStyle.Regular); // lamp will redraw here lamp.ResumeDraw(); } </code> {{ .:suspenddrawon.mp4?427x240 }} 특히 화면이 전환된뒤, 이 방법을 사용하시면 지저분하게 콘트롤들이 표시및 배치되는 과정을 숨기고, 한번에 모든 내용을 표시하도록 할 수 있습니다.
jcontrols_cf35/setting_properties_at_runtime.txt
· 마지막으로 수정됨: 2016/04/14 09:46 (바깥 편집)
문서 도구
문서 보기
이전 판
역링크
맨 위로