0

ウィンドウ UI を c++ ウィンドウ フォームで作成しました。フォームをローカライズするために文字列テーブルを作成したいと思います。私の手順は次のとおり
です。 1. フォーム localizable=true を設定します。
2. (プロジェクト名).en-US.resx という名前の新しい .resx ファイルを追加し、文字列テーブルを編集します。
3. 次のようなコードを使用してコンポーネントのテキストを設定します。テキストの
this->button1->Text = resources->GetString("CLOSE");
設定が完了したら、プロジェクトをビルドして実行すると、ボタンに実際にテキストが表示されます。しかし、UI を変更すると (コンポーネントの追加やボタンの位置の変更など)、再度ビルドするとテキストが消えてしまいます。コードの何が問題になっていますか? テキストを常に表示するにはどうすればよいですか? それ以外の場合は、フォームを変更した場合に再度設定する必要があります><。誰の助けにも感謝します。

4

1 に答える 1

0

デザイナーによって生成されたコードを変更しないでください。InitializeComponent() メソッド内のすべて。このような変更は、デザイナーで別の変更を行い、メソッドを再生成すると消えます。コンストラクターのコードは問題ありません。InitializeComponent() 呼び出しの後に配置します。

フォームをローカライズするより良い手順は、デザイナーに .resx ファイルコードを生成させることです。フォームの Language プロパティを目的の言語に変更し、プロパティ グリッドで Text プロパティを変更します。追加のコードは必要ありません。

于 2012-08-21T02:29:49.427 に答える