2016-09-05 9 views
0

実行する前にローカライズされた文字列リソースを取得する必要があります(C#Winforms)。イベントOnPaintにテキストを印刷するボタンのカスタムコントロールがあります。私は、カスタムコントロールのconstractorで実行する前に、設定された場所の文化を設定し、デザイナでテキストのereaを見ることができます:実行前にローカライズされた文字列リソースを取得する(C#Winforms)

var culture = new CultureInfo("de-DE"); 

Thread.CurrentThread.CurrentCulture = culture; 
Thread.CurrentThread.CurrentUICulture = culture; 

しかし、私は、私が代わりにドイツの中立文字列リソースを取得する実行する前に、文字列リソースを取得しようとすると:

ResourceManager p = new ResourceManager("myProject.Properties.Resources", 
             Assembly.GetExecutingAssembly()); 
Text = p.GetString(ResourceNameForText, new CultureInfo("de-DE")); 

実行前にドイツ語の文字列をデザイナーで取得するにはどうすればよいですか?

+0

実行前はいつですか?デザイン時に "de-DE"テキストを表示する必要がありますか? –

+0

はい、あります。デザインタイムツーリングが必要です。 – TDDinAction

答えて

0

解決策が見つかりました。カスタムコントロールでは、デザイン時モードの間だけResources.de-DE.resxからストリームの読み込みと解析のメソッドを呼び出すオープンプロパティを作成しました。

+0

詳細を追加するにはどうすればよいですか?多分いくつかのコード? – Marwie

+0

これはcomersialプロジェクトの一部なので、私はコードを添付できません。しかし、System.ComponentModel.DesignModeクラスを使用してdisign-timeを定義し、デザイン時にもプロパティのuser control whitch return getメソッドのpublic publicプロパティを使用できます。したがって、XElementまたは正規表現を使用してResources.de-DE.resxファイルを解析するためのプロパティのgetメソッドからいくつかのメソッドを呼び出すことができます。定義パスについては、インターフェースDTEを使用できます。 – TDDinAction

関連する問題