2013-01-03 3 views
0

그림 상자가 있습니다. 이 그림 상자는지도에 사용됩니다.사용자 컨트롤 Windows에서 새로 고침 양식

지도에 elemenst가 있습니다. 예 : 디스플레이.

Windows 사용자 컨트롤에서 "display"를 만들었습니다. 이 사용자 정의 컨트롤에는 "패널, 패널에 3 개의 그림 상자"가 있습니다.

모든 사용자는 화면에 "디스플레이"를 만들고 picturebox (지도)의 컨트롤로 저장합니다. 사용자가 데이터를 저장하면 데이터베이스에 저장됩니다.

매초마다 picturebox (지도)를보고 데이터와 데이터베이스를 제어합니다. '디스플레이'가 상태 (예 : 이동 또는 정지, 교통 표지의 종류)를 변경하면 변경된 것을 발견하고 새로 고칩니다.

이제 질문입니다 :지도 (그림 컨트롤) 컨트롤에 다시 추가하는 것보다 디스플레이 (사용자 정의 컨트롤)를 제거하면 잘 작동합니다. 업데이트 된 "표시"가지도에 표시됩니다. 그러나 디스플레이가 밀리 초 동안 사라지고 깜박 거림처럼 돌아 오기 때문에 모든 사용자가 프로세스를 볼 수 있습니다.

어떻게 제거하고 다시 추가 프로세스없이이 사용자 정의 컨트롤을 새로 고칠 수 있습니까? 방법을 새로 고치는 방법이 있습니까?

+0

간단히 말해 WPF ftw는 사용할 수 없습니다. –

+0

정말 미안하지만 나는 이해할 수 없다 : "ftw". –

+0

"승리를 위해"^^ – Carsten

답변

2

깜박임을 억제하려면 깜박임 생성 작업 전에 창에 부모 제어 그림을 일시 중단하도록 요청하고 나중에 다시 시작하십시오. this SO question을 확인하십시오.

나는 종종 내 사용자 지정 컨트롤에서이를 수행하며 훌륭하게 작동합니다. Control 클래스의 확장 메서드로 첫 번째 답변의 "SuspendDrawing"및 "ResumeDrawing"정적 메서드를 추가 할 수도 있습니다.

+0

대단히 감사합니다, 완벽한 결과 :) –

관련 문제