トップ回答者
デザイナー編集時と実行時の文字出力が変わる

質問
-
VBで「Sub Main()」から実行するWindowsアプリケーションを作成しています。
「Sub Main()」から実行させるため、プロジェクトのプロパティの「アプリケーションフレームワーク」のチェックを外しています。
デザイナーでFormにボタンをつけて、フォントを「MSゴシック12pt」にし、テキストに"AA-BB-CC-DD"を入れて、このテキストが1行で表示されるぎりぎりの幅にボタンを狭めます。
「Sub Main()」にはForm.ShowDialog()だけにします。
その状態で実行したところ、ボタンのテキストが2行表示になってしまいました。
「アプリケーションフレームワーク」のチェックをつけて、Formをスタートアップにすればデザインと同じように表示されるのですが、「Sub Main()」からにしたいです。
そこで、いろいろ調べて行き着いたのがSetCompatibleTextRenderingDefaultを(false)で実行すると、デザインと同じ様に画面が表示される。
と確認できたのですが、このページの下のほうに「GDI」と「GDI+」とあり、「GDI+にパフォーマンスとローカライズに関する問題がある」と書かれているので、使いたくないなぁと思っています。
そもそもこの、「ボタンのテキストがデザイン時は1行で、実行時には2行で表示される」のは、この「GDI」と「GDI+」に関係があるのでしょうか?
もしそうだとすると、以下の項目はそれぞれ{「GDI」、「GDI+」}のどちらになるのでしょうか?
・デザイン時は?
・「アプリケーションフレームワーク」のチェックをつけると? また、外すと?
・SetCompatibleTextRenderingDefault(True)は? SetCompatibleTextRenderingDefault(False)は?
VS2005, WinXP(SP3)
回答
-
リンク先はドキュメントが間違っています。その後のバージョンで修正されていますが、日本語版については更に悪化しています。
Application.SetCompatibleTextRenderingDefaultメソッドの各ドキュメントについて
- .NET Framework 2.0英語版
If true, new controls that support UseCompatibleTextRendering use GDI+ for text rendering; if false, new controls use GDI+. - .NET Framework 2.0日本語版
true の場合、 UseCompatibleTextRendering をサポートする新しいコントロールは、テキスト表示用の GDI+ を使用し、false の場合は、GDI+ を使用します。 - .NET Framework 3.5英語版
If true, new controls that support UseCompatibleTextRendering use the GDI+ based Graphics class for text rendering; if false, new controls use the GDI based TextRenderer class. - .NET Framework 3.5日本語版
true の場合、 UseCompatibleTextRendering をサポートする新しいコントロールは、テキスト表示用の GDI を使用し、false の場合は、GDI+ を使用します。
- 回答としてマーク ykaismu 2009年9月7日 1:29
- .NET Framework 2.0英語版
-
リンク先はドキュメントが間違っています。その後のバージョンで修正されていますが、日本語版については更に悪化しています。
ドキュメントフィードバックに投げておきました。
http://social.msdn.microsoft.com/Forums/ja-JP/vddocumentsja/thread/0788af55-caa1-43f8-a467-91057a01eae2
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。- 回答としてマーク ykaismu 2009年9月7日 15:03
すべての返信
-
リンク先はドキュメントが間違っています。その後のバージョンで修正されていますが、日本語版については更に悪化しています。
Application.SetCompatibleTextRenderingDefaultメソッドの各ドキュメントについて
- .NET Framework 2.0英語版
If true, new controls that support UseCompatibleTextRendering use GDI+ for text rendering; if false, new controls use GDI+. - .NET Framework 2.0日本語版
true の場合、 UseCompatibleTextRendering をサポートする新しいコントロールは、テキスト表示用の GDI+ を使用し、false の場合は、GDI+ を使用します。 - .NET Framework 3.5英語版
If true, new controls that support UseCompatibleTextRendering use the GDI+ based Graphics class for text rendering; if false, new controls use the GDI based TextRenderer class. - .NET Framework 3.5日本語版
true の場合、 UseCompatibleTextRendering をサポートする新しいコントロールは、テキスト表示用の GDI を使用し、false の場合は、GDI+ を使用します。
- 回答としてマーク ykaismu 2009年9月7日 1:29
- .NET Framework 2.0英語版
-
リンク先はドキュメントが間違っています。その後のバージョンで修正されていますが、日本語版については更に悪化しています。
ドキュメントフィードバックに投げておきました。
http://social.msdn.microsoft.com/Forums/ja-JP/vddocumentsja/thread/0788af55-caa1-43f8-a467-91057a01eae2
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。- 回答としてマーク ykaismu 2009年9月7日 15:03