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

MDI子フォームの整列

分類:[VB6以前]

Form1とForm2がMDIFormの子フォームになっています。
親でも子でもないForm3から、Form1とForm2をShowすると、
MDIFormも表示されます。

そこでForm1とForm2を左右に整列させたいのですが、
うまくいきません。Arrangeメソッドを次のように
使用しているのですが、、、。
Private Sub MDIForm_Load()
Me.Arrange vbTileHorizontal
End Sub

どなたかご存知の方がいらっしゃいましたら、教えてください。
宜しくお願いいたします。
こんにちは、ゆみさん。ピラルクです。

MDIFormのLoad時点では、まだ子Formは乗っかっていないからです。

(補)
Me.Arrange vbTileHorizontal の後に
Debug.Print MDIForm1.Controls.Count をしても 0 です。

よって、Load以外のどこか別のタイミングで、.Arrange
する必要があります。

例えば初回のみのActivateなどが考えられますが、どこが
適切かは、そのアプリケーション次第です。
  • 題名: Re[2]: MDI子フォームの整列
  • 著者: ピラルク
  • 日時: 2003/10/23 12:48:56
  • ID: 1103
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
訂正:

> Debug.Print MDIForm1.Controls.Count をしても 0 です。

Controls.Countでは、子Formの数は取得できませんね。
何でわかるんだろう? (まぁ関係ないからいいや。(^^;)
■No1101に返信(ピラルクさんの記事)
> こんにちは、ゆみさん。ピラルクです。
>
> MDIFormのLoad時点では、まだ子Formは乗っかっていないからです。
>
> (補)
> Me.Arrange vbTileHorizontal の後に
> Debug.Print MDIForm1.Controls.Count をしても 0 です。
>
> よって、Load以外のどこか別のタイミングで、.Arrange
> する必要があります。
>
> 例えば初回のみのActivateなどが考えられますが、どこが
> 適切かは、そのアプリケーション次第です。
>
その通りでした。子Formを表示してから並び替えて、うまくいきました。
ピラルクさん、ありがとうございました。
解決済み!

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