1

ユーザーが実行時に GUI 言語を変更できる Windows CE アプリケーションを作成しています。フォームの Load イベントに独自の翻訳ロジックを実装しました。

ここで、ユーザーが言語を変更したときに、開いているすべてのフォームを更新したいと思います。アプリケーションの開いているすべてのフォームを取得する方法はありますか (Compact Framework で!!)。

4

1 に答える 1

3

すべてのフォームをインスタンス化するために使用する FormManager クラスを作成できます。これにより、マネージャーは、Close イベントをリッスンしてフォームの有効期間を追跡し、共通のインターフェイス (たとえば、OnUiLanguageChanged メソッドを使用するインターフェイス) を使用する場合は、それらのメソッドをまとめて呼び出すことができます。

または、各フォームがサブスクライブできるイベントを公開するオブジェクトをアプリケーションに作成することもできます。そうすれば、どのフォームが開いているかを知る必要はありません。Intsead で開いているすべてのフォームは、開いている限り UiLanguageChanged イベントをリッスンしており、それを受け取った場合は適切に更新できます。

于 2012-04-23T14:26:01.133 に答える