2012-04-23 2 views
1

사용자가 런타임에 GUI 언어를 변경할 수있는 Windows CE 응용 프로그램을 만들고 있습니다. 폼의 Load 이벤트에서 자체 변환 논리를 구현했습니다.Compact Framework - 열려있는 모든 양식 얻기

이제 사용자가 언어를 변경할 때 열려있는 모든 양식을 업데이트하고 싶습니다. Compact Framework에서 응용 프로그램의 열려있는 모든 양식을 검색하는 방법이 있습니까?

+0

가능한 한 http://stackoverflow.com/q/3202000/108847의 중복이 가능하지만 아마도 도움이 될 것입니다. http://dandohotaru.blogspot.co.uk/2007/11/caching-opened-forms-in-net- compact.html. 세계화 및 리소스 파일을 사용하는 대신 왜 번역을 사용하고 있습니까? – Fishcake

+0

두 번째 링크는 흥미 롭습니다. 감사합니다. – jdetaeye

+0

기본 세계화를 사용하지 않으려 고하는 이유는 OS의 언어 설정을 사용하지 않고 내 자신의 응용 프로그램 언어 설정을 사용하기 때문입니다. Compact Framework에서는 지역화 가능한 양식과 언어 설정을 OS 언어 설정과 함께 사용해야합니다. – jdetaeye

답변

2

양식을 모두 인스턴스화하는 데 사용하는 FormManager 클래스를 만들 수 있습니다. 이렇게하면 관리자가 Close 이벤트를 수신하여 해당 양식의 수명을 추적하고 공통 인터페이스 (예 : OnUiLanguageChanged 메소드가있는 인터페이스)를 사용하는 경우 한꺼번에 메소드를 호출 할 수 있습니다.

또는 각 양식을 구독 할 수있는 이벤트를 노출하는 응용 프로그램에서 개체를 만들 수 있습니다. 그렇게하면 어떤 양식이 열려 있는지 알 필요가 없습니다. Intead는 열려있는 모든 형태의 UiLanguageChanged 이벤트를 수신 대기하고 수신하면이를 적절하게 업데이트 할 수 있습니다.