none
スクロールバーを持つ子ウィンドウの最大化・最小化 RRS feed

  • 質問

  • こんにちは.

    MDIの子ウィンドウにスクロールバーが表示されている場合に,最大化(または最小化)をしてから元に戻すとスクロールバーの幅や高さだけ子のフォームが小さくなってしまいます.

    このようになる場合の対処法を教えてください.

    スクロールバーの設定には”AutoScroll = True”を使用しています.バージョンは2005です.

    よろしくお願いします.

    2006年7月16日 15:58

すべての返信

  •  DS-UWB さんからの引用
    MDIの子ウィンドウにスクロールバーが表示されている場合に,最大化(または最小化)をしてから元に戻すとスクロールバーの幅や高さだけ子のフォームが小さくなってしまいます.

    あら、 ほんとですねぇ。 (VB, C# とも再現)

    Form のバグっぽいですが、 とりあえず Panel を使って回避できました。
    Form 全面に Panel を貼り、 スクロールバーは Panel に出させるようにします。

    • Form の AutoScroll はやめる。
    • Form に Panel を貼り付け、 Form 上の既存のコントロールを Panel 上に移す。
    • Panel の Dock プロパティを Fill にし、 AutoScroll プロパティを True にする。

    ※ もっとスマートな解決法がありましたら、 よろしくです。 > ALL

    2006年7月20日 2:31
  • Form の AutoScroll = True にしたときのこの現象は、  MDI だけでなく、  SDI フォームでも発生するようですね。
    MDI のプログラムはそうそう作ることはないから… と、 タカを括っておりましたが、 そうもいかないようで

    念のために VS.NET 2003 で確認してみましたが、 .NET Framework 1.1 では、 この問題は出ないようです。 (VB.NET でのみ確認。 C# でも同じだと思われる。)

    ※ 検索用キーワード追加:
    WindowState, FormWindowState.Normal, FormWindowState.Maximized, FormWindowState.Minimized

    2006年7月24日 1:40
  • biac さん.ありがとうございます.
    返事が遅くなり,申し訳ございません.

    バグですか・・・
    久しぶりにVBを使ったので,自分のやり方が悪いかなと半信半疑で質問させていただきました.

    こちらでも,調べて見たいとおもいます.
    他にも情報がありましたら,お願いします.

    2006年7月25日 4:06