- 題名: カルチャの変更の仕方
- 日時: 2012/09/19 17:24:01
- ID: 30942
- この記事の返信元:
- (なし)
- この記事への返信:
- [30945] Re[1]: カルチャの変更の仕方2012/09/19 17:34:04
- ツリーを表示
■No30942に返信(あかつきさんの記事) > これでカルチャは英語(米国)に変更されているはずだと思うのですが、 Form1.Load では遅いです。 リソースの読み取りは、コンストラクタから呼ばれる InitializeComponent 内で 実施されますので、それよりも前に切り替える必要があります。 たとえば、スタートアップの Main プロシージャ内にて、 Application.Run メソッドを呼び前に処理を記述しておくか、 もしくは、フォームのコンストラクタの先頭に記述するようにします。 Public Class Form1 Public Sub New() Thread.CurrentThread.CurrentUICulture = New CultureInfo("en-US") InitializeComponent() End Sub End Class
分類:[.NET]
質問させて頂きます。宜しく御願いします。
VBで開発したアプリについて、使用するカルチャを内部から変更する手段を考えています。
まずデザイナでForm1というメインフォームを作成し、そこにlabel1というラベルを作成しました。
次にForm1のlocalizableプロパティをTrueにし、languageプロパティを英語(米国)に設定してlabel1のTextプロパティを"English"にしました。
更にlanguageプロパティを日本語(日本)に設定してlabel1のTextプロパティを"日本語"にしました。
これでそれぞれの言語のリソースファイルが生成されたので、次のようなコードを作成しました。
Imports System.Threading
Imports System.Globalization
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Thread.CurrentThread.CurrentUICulture = New CultureInfo("en-US")
End Sub
End Class
これでカルチャは英語(米国)に変更されているはずだと思うのですが、実行するとlabel1の表示は"日本語"になります。
label1に"English"と表示させるためにはどうすればよいでしょうか?
以上、宜しく御願い致します。