- - PR -
VB.NETでのMDIを教えてください。
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-07-09 21:56
VB.NETを最近始めたばかりで、MDIを利用してアプリケーションの構築を行いたいの
ですが、下記のような内容で困っています。 1:親フォーム「Main」を作成 2:子フォーム「Frm_Child1」「Frm_Child2」の2つを作成 3:アプリ起動時には「Frm_Child1」が開くように、親フォームの「Main_Lord」に 'メイン画面(親フォーム)にメインメニュー(子フォーム)を表示 Dim NewMDIChild As New Frm_Child1 NewMDIChild.MdiParent = Me '親フォームを最大化表示 Me.WindowState = FormWindowState.Maximized NewMDIChild.StartPosition = FormStartPosition.CenterScreen NewMDIChild.Show() のコードを記述 4:「Frm_Child1」のボタンを配置、クリック時に「Frm_Child2」が開くよう設定 このような内容で実行した場合、Frm_Child1からFrm_Child2を開いた時、Frm_Child2は 親フォームMainの子フォームになりません。どのようにしたらFrm_Child2を子フォーム ムとすることが出来るのでしょうか? 説明が伝わり難いかもしれませんが、よろしくお願いいたします。 | ||||||||
|
投稿日時: 2005-07-09 22:28
分かりません。 肝心の「Frm_Child1からFrm_Child2を開く」時に、どんなコードを実行しているかを明らかにしてください。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||||||
|
投稿日時: 2005-07-09 22:44
すみません、説明が不足でした。
Frm_Child1のボタンクリック時には下記のようなコードを書きました。 Dim NewFrmChild As New Frm_Child2 NewFrmChild.Show() 申し訳ありませんが、よろしくご指導ください。 | ||||||||
|
投稿日時: 2005-07-09 22:50
NewFrmChildにMdiParentが設定されていなかったらそれを普通のフォームとして開くのは至極当然な動作だと思いますが。
| ||||||||
|
投稿日時: 2005-07-09 23:21
MdiParentの設定は以下の記述で良いのでしょうか?
Dim NewFrmChild As New Frm_Child2 Dim NewFrmParent As Main NewMDIChild.MdiParent = NewFrmParent NewFrmChild.Show() ちなみに上記のコードでは、子フォームとして動作せずに普通のフォームとして 開いてしまいます。具体的なコードをお教えいただければ助かります。 初心者の愚問ばかりで申し訳ありません。 | ||||||||
|
投稿日時: 2005-07-10 06:48
これじゃ NewFrmParent に何も設定していないので、NewMDIChild.MdiParent にも何も設定されませんね。 Main 型の変数を設定すればいいんじゃなくて、現在の MDI コンテナを渡さなければいけません。 今回は別の MDI 子フォームから開くとのことなので、たとえば
でよいのではないかと思います。 いいサンプルが見つからなかったのですが、 @IT:連載 改訂版 C#入門 第3章 クラスとインスタンス [ メッセージ編集済み 編集者: にしざき 編集日時 2005-07-10 07:00 ] | ||||||||
|
投稿日時: 2005-07-10 07:23
にしざきさんレス有難うございます。
お教えいただいたコードで解決いたしました。私は間違った理解をしていたんですね。 非常にお恥ずかしい愚問に、丁寧なレスを頂いたことに感謝しております。 |
1