DOBON.NET DOBON.NETプログラミング掲示板過去ログ

中国語版Windowsで起動するとフォームサイズが・・・

分類:[.NET]

VB.NETで作成したアプリケーションを中国で購入したパソコン(Windowsはインストール時点で中国語)で起動させると、フォームのサイズやフォーム上のコントロールのサイズが異なって表示されてしまいます。
原因・対策などありますでしょうか?
■No12988に返信(へなちょこZさんの記事)
> VB.NETで作成したアプリケーションを中国で購入したパソコン(Windowsはインストール時点で中国語)で起動させると、フォームのサイズやフォーム上のコントロールのサイズが異なって表示されてしまいます。

>原因
日本語版Windowsで無いから。

>対策
コントロールパネルから「地域と言語のオプション」をクリックし、「地域オプション」を「日本語」に選択してみてください。
それでも駄目ならば、「詳細設定」の「Unicode 対応でないプログラムの言語」で「日本語」を選択してください。
これで、日本語版WindowsXPとして動作するはずなので、その状態でアプリケーションを実行してみてください。

参考サイト:http://www.geocities.com/Tokyo/2799/mls.html#2000
返信ありがとうございます。

おっしゃるとおり日本語版のWindowsではございません。

まず、何がやりたかったかと申しますと、日本語・中国語対応のアプリケーションを作成しておりました。

アプリケーションの起動時にWindowsの言語は何か?を判定して、その言語で表示されるかを試していた矢先の出来事です。

しかしながら、今思えば言語の切り替えにFormのLocalizationを使用せずに、FormのLoad時に直接コントロールのTextを通知していたのでそれが原因かもしれませんね。

フォームとコントロールの数がめっぽう多いためこの方法でやりましたが、最低限Localizationの設定は必要かもしれません。

とりあえず、一旦この方法で試してみます。
> フォームとコントロールの数がめっぽう多いためこの方法でやりましたが、最低限Localizationの設定は必要かもしれません。
>
> とりあえず、一旦この方法で試してみます。

駄目でした、結果同じです。
どなたかお知恵お貸しください。
日本語Windowsでもフォームサイズは環境によって変わりますよ。
Form.Sizeが800x600になるようにデザイナで設定していたとして、
開発環境でのタイトルバーの高さが20だとしたら、
Form.ClientSizeは800x580で保存されます。

これをタイトルバーが30の環境で動かせば、
Form.Sizeは800x610となります。

画面のプロパティの「デザイン」タブの設定や
「設定」タブで指定できるフォントのDPI指定などの影響で
フォームやコントロールのサイズは影響受けると思います。

使用環境が多岐に渡る場合は、この辺を考慮して
ゆとりのあるデザインする必要があると思います。
多言語を扱う場合は、ボタンの文言の長さが日本語の場合と
その他の言語の場合とで同じような長さになるようにも考慮しておく必要もあると思います。

DOBON.NET | プログラミング道 | プログラミング掲示板