- - PR -
MDI子フォームの最大化表示
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-05-18 15:19
お世話になっております。
現在VS2005(VB)にてMDIウィンドウのアプリケーションを開発しています。 子フォームを最大化で開きたいのですが、うまくいきません。 以下の2パターンを試しました。 @ 子フォームのLoad時に、 Me.WindowState = FormWindowState.Maximized とすると、一度Normalサイズにて表示された後、最大化されるような動きをし、 画面がチラついてしまいます。 A 親フォームで子フォームを呼出す際、 childForm.WindowState = FormWindowState.Maximized childForm.Show() とすると、Normalサイズで表示されます。 (画面の右上のMaximizeBoxは「元に戻す」ボタンになっているので、自らは最大化されているつもりのよう・・・) きれいに最大化表示ができる方法を知っておられる方がいましたら、 教えて頂けないでしょうか? | ||||||||
|
投稿日時: 2006-05-18 16:57
解決策というか
こうすればできるかも?という案しか提示できませんが 親フォームから子フォームを呼び出す前に、 子フォーム側の関数を呼び出し、 子フォーム側の関数で Me.WindowState = FormWindowState.Maximized を使ってみるのはいかがでしょうか? 親フォームクラス
子フォームクラス
というような感じ。 #うちにはVS2005が無いので試せないのが心苦しい(^^; #たぶんにVS2005のバグなんだろうなぁ。。。 [ メッセージ編集済み 編集者: なせ 編集日時 2006-05-18 16:59 ] | ||||||||
|
投稿日時: 2006-05-18 17:00
と最低限のコードでは、普通に最大化されて表示されているように見えますが……。 | ||||||||
|
投稿日時: 2006-05-18 18:03
なせ様
Hongliang様 お返事ありがとうございます。 早速、検証してみました。 <<なせ様の方法>> 期待した結果は得られませんでした。 私のAの方法の結果と同等の結果となりました。 > A > 親フォームで子フォームを呼出す際、 > > childForm.WindowState = FormWindowState.Maximized > childForm.Show() > > とすると、Normalサイズで表示されます。 > (画面の右上のMaximizeBoxは「元に戻す」ボタンになっているので、 > 自らは最大化されているつもりのよう・・・) <<Hongliang様の方法>> 新規にプロジェクトを作成し、MDI親フォームを頂いたコードの通り作成すると、 ご指摘の通り、普通に最大化されました。 しかし、プロジェクトに子フォームとなるForm(例えば、Form2) を追加し、 そのFormを使用すると、 Dim child As New Form2 child.WindowState = FormWindowState.Maximized child.MdiParent = Me child.Show() やはりAの結果となります。 納品はまだ先なので、これからもいろいろと調べてみます。 また何か方法がありましたら、よろしくお願い致します。 | ||||||||
|
投稿日時: 2006-05-18 22:51
タイミングの問題だとは思うので、色んなパターンで検証して切り分けてください。 でも、MDI フォームに関する不具合は多いんですよね... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1