none
VB2005で「アプリケーション フレームワーク」を有効にした場合としない場合の画面表示について RRS feed

  • 質問

  • はじめまして。

    VB2005(SP1)を使用してウィンドウアプリケーションを開発しているのですが、
    プロジェクトのプロパティにある「アプリケーション フレームワークを有効にする」のチェックを付けていない場合、
    デザイン時と実行時で、コントロールの表示に差異が発生します。
    全角で10文字が表示できるサイズのラベルコントロール(AutoSize=False,BorderStyle=Fixed3D,Font=MSゴシック 18)が、実行時には文字が折り返されて表示されてしまいます。

    「アプリケーション フレームワークを有効にする」のチェックを付けている場合は、この現象は発生しません。

    これは、仕様なのでしょうか?
    ご存知の方がいらっしゃいましたら、教えていただけないでしょうか?

    よろしくお願い致します。

    2007年12月5日 5:32

すべての返信

  • Sub Main 内の先頭で

    Application.EnableVisualStyles()

    を呼び出してみてください。

     

    #チェックあり(有効) の場合に自動でおこなわれることは、チェック無し(無効) の場合に必要ならそれらを呼び出す必要があります。

    2007年12月5日 7:14
  • まどかさん、はじめまして。
    早速のご回答ありがとうございます。

    「アプリケーション フレームワークを有効にする」にチェックを付けている時は、
    「XP Visual スタイルを有効にする」にチェックを付けていないため、
    そのため、フレームワークを有効にしていない場合でも、Sub Mainには、Application.EnableVisualStyles()を
    入れていません。

    フォームにラベルを1つ貼った単純な画面でも同様の問題が発生しています。
    環境の問題でしょうか?

    開発環境は、Windows XP(SP2), Visual Studio 2005 Pro(SP1), Office 2007 です。


    2007年12月5日 7:43
  • 失礼しました。

     

    文字間隔が少し広くなっているようですね。

    UseCompatibleTextRendering=True だとならないみたいです。

    2007年12月5日 10:59
  • まどかさん、ありがとうございます。

    UseCompatibleTextRenderingプロパティをTrueに設定すると、文字間隔が広がって表示されます。
    そのため、このプロパティはFalseに設定しています。

    実は、自宅にVB 2005 Express Editonを入れていたので、同様のことをしてみたのですが、再現しませんでした。
    という事は、バージョンの違い、もしくは環境の違いなのかと思っています。
    環境を疑って、.NET Frameworkのバージョン等を調べてみようと思っています。

    こんな、現象が出ているのは、私だけなのかな...

    2007年12月7日 4:19
  • オペレーティング システムに違いはないのでしょうか。

    2007年12月7日 6:35
  • じゃんぬねっとさん、こんにちわ。

    OSはどちらもWindows XP(SP2)なのですが、
    VB2005 Professional版が入っているのは、XP Pro、VB2005 Express版が入っているのは、XP Homeになります。
    どちらも、クラシック表示で使用しています。
    だだし、自宅で使用している XP Homeの方は、Windows Updateで常に最新にしていますが、
    職場で使用しているXP Professional版は、外部ネットワーク接続できる環境がないため、
    SP2のみが適用されている状態です。

    最近、.NET Framework 2.0 SP1がリリースされているので、
    もしかしたら、自宅PCの方はSP1が適用されているのではないかと思い、
    バージョン等の確認をしてみようと思っています。



    2007年12月7日 7:07