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

MDIコンテナについて

環境/言語:[XP+VB.NET2003]
分類:[.NET]


いつも参考にさせていただいています。 ありがとうございます。

MDIフォームについてですが、
FrmMainというフォームをMDIコンテナにしてあり、
FrmMainから子フォームFrmChildを開くときは下記の記述で良いのですが、
FrmChild.MdiParent = Me
↑これのMeを別のフォーム名を使うことはできないのでしょうか?

FrmChild.MdiParent = FrmMain(こんな感じで) 

なにがやりたいかというと、MDI子フォームから他の子フォームを開きたいのです。
メイン画面の中にメインメニューがあって、メインメニューからも子フォームを開きたいのです。

ちょっと解りにくい質問ですが、宜しくお願いします。
こんにちは、じゃんぬ です。

■No10967に返信(たくさんの記事)
> MDIフォームについてですが、
> FrmMainというフォームをMDIコンテナにしてあり、
> FrmMainから子フォームFrmChildを開くときは下記の記述で良いのですが、
> FrmChild.MdiParent = Me
> ↑これのMeを別のフォーム名を使うことはできないのでしょうか?

どのクラスからの呼び出しで、ですか?
FrmMain のインスタンス == Me という解釈でよろしいんですか?
大事なところが暗黙に書かれてないですが。

> なにがやりたいかというと、MDI子フォームから他の子フォームを開きたいのです。

___________________________________________________________________
Option Strict On

Public Class FormMenu
    Inherits System.Windows.Forms.Form
' ________________________
'| Windows フォーム デザイナで生成されたコード |
'  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    Private Sub Button1_Click(...) Handles Button1.Click
        Dim hFormChild As New FormChild()

        Me.IsMdiContainer = True
        hFormChild.MdiParent = Me

        hFormChild.Show()
    End Sub

End Class
___________________________________________________________________
Option Strict On

Public Class FormChild
    Inherits System.Windows.Forms.Form
' ________________________
'| Windows フォーム デザイナで生成されたコード |
'  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    Private Sub Button1_Click(...) Handles Button1.Click
        Dim hFormGrandchild As New FormGrandchild()

        hFormGrandChild.ShowDialog()
    End Sub

End Class
___________________________________________________________________

こういう意味ではなく、MDI の中に MDI を作るというのであれば、
UI の設計を見直してください。

> メイン画面の中にメインメニューがあって、
> メインメニューからも子フォームを開きたいのです。

その子フォームが別インスタンスであれば、問題ないです。
2005/05/27(Fri) 10:33:04 編集(投稿者)

> 大事なところが暗黙に書かれてないですが。
>>なにがやりたいかというと、MDI子フォームから他の子フォームを開きたいのです。

 私はこちらの方と同様のことをなさりたいのだと解釈しました。違ってるかも知れませんけど参考リンクということで。

MDI子フォームのSHOW
http://www.bcap.co.jp/hanafusa/bbs/wforum.cgi?mode=allread&no=1719&page=0

#実際のところどうなんでしょ?>質問者さま


(追記)
 過去ログにも似たようなのがあったので一応紹介しておきますね。

MDIを使用し子フォームから別の子フォームを開くには?
http://dobon.net/vb/bbs/log3-2/1053.html

親フォームと子フォームの操作方法について
http://dobon.net/vb/bbs/log3-13/7602.html
■No10972に返信(深山さんの記事)
> 2005/05/27(Fri) 10:33:04 編集(投稿者)
>
>>大事なところが暗黙に書かれてないですが。
> >>なにがやりたいかというと、MDI子フォームから他の子フォームを開きたいのです。
>
>  私はこちらの方と同様のことをなさりたいのだと解釈しました。違ってるかも知れませんけど参考リンクということで。
>
> MDI子フォームのSHOW
> http://www.bcap.co.jp/hanafusa/bbs/wforum.cgi?mode=allread&no=1719&page=0
>
> #実際のところどうなんでしょ?>質問者さま
>
>
> (追記)
>  過去ログにも似たようなのがあったので一応紹介しておきますね。
>
> MDIを使用し子フォームから別の子フォームを開くには?
> http://dobon.net/vb/bbs/log3-2/1053.html
>
> 親フォームと子フォームの操作方法について
> http://dobon.net/vb/bbs/log3-13/7602.html

じゃんぬねっとさん・深山さんありがとうございました。
まだまだ初心者で、解りづらくてすみません。

やりたいことは、深山さんがリンク張ってくれたような事です。
がんばってやってみます。
ありがとうございました。
解決済み!

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