tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル親子画面
記事No11388
投稿日: 2015/04/13(Mon) 16:20
投稿者貴将
宜しくお願いします。

環境
WINDOWS8
VB.NET 2013
 

VB6から.NETへコンバートをしています。

画面の親子関係について
 VB6では、SetParentを使用していました。
 .NETでは、フォーム.MdiParentで対応使用と思っています。
 ⇒終了するとき、単純に画面をクローズと考えています。


下記の条件で作成しています。

2つのプロジェクト構成のもと作成しています。

@地図プロジェクト
 frm地図 
 frm都道府県
A市町村プロジェクト
 frm市
 frm町字
 frm地番

@地図プロジェクトからA市町村プロジェクトを呼ぶときは
 引数を設定しています。
 


やりたいこと
違うプロジェクト間で親子関係の画面を表示したいです
 frm地図 
  frm都道府県
   frm市
    frm町字
     frm地番

 frm地図 
  frm都道府県の部分は

 frm地図のイベントで

 Dim frm as New frm都道府県
  frm.MdiParent = Me   
  frm.show() 
 としています。

違うプロジェクト間での親子関係作成は、
どのようにしたらいいのでしょうか

前のプロジェクトから引数が必要なのでしょうか

以上
お願い致します。

[ツリー表示へ]
タイトルRe: 親子画面
記事No11389
投稿日: 2015/04/13(Mon) 18:00
投稿者魔界の仮面弁士
> 画面の親子関係について
>  VB6では、SetParentを使用していました。

MDI に拘らないのであれば、TopLevel プロパティを試してみるとか。


'Form2 を Form1 の中に配置
Dim f2 As New Form2() With {.TopLevel = False, .Visible = True}
Me.Controls.Add(f2)

'Form3 を Panel の中に配置
Dim f3 As New Form3() With {.TopLevel = False, .Visible = True}
Me.Panel1.Controls.Add(f3)

'Form4 を Button の中に配置
Dim f4 As New Form4() With {.TopLevel = False, .Visible = True}
Me.Button1.Controls.Add(f4)


孫階層、曾孫階層と重ねていっても OK です。使いやすいかどうかは別として。


実際には、各フォームは別のプロジェクトのものということなので、
プロジェクトを DLL として作成し、それを参照設定することになるでしょうね。

[ツリー表示へ]
タイトルRe^2: 親子画面
記事No11393
投稿日: 2015/04/15(Wed) 09:03
投稿者貴将
> > 画面の親子関係について
> >  VB6では、SetParentを使用していました。
>
> MDI に拘らないのであれば、TopLevel プロパティを試してみるとか。
>
>
> 'Form2 を Form1 の中に配置
> Dim f2 As New Form2() With {.TopLevel = False, .Visible = True}
> Me.Controls.Add(f2)
>
> 'Form3 を Panel の中に配置
> Dim f3 As New Form3() With {.TopLevel = False, .Visible = True}
> Me.Panel1.Controls.Add(f3)
>
> 'Form4 を Button の中に配置
> Dim f4 As New Form4() With {.TopLevel = False, .Visible = True}
> Me.Button1.Controls.Add(f4)
>
>
> 孫階層、曾孫階層と重ねていっても OK です。使いやすいかどうかは別として。
>
>
> 実際には、各フォームは別のプロジェクトのものということなので、
> プロジェクトを DLL として作成し、それを参照設定することになるでしょうね。
⇒共通関数のみ、DLLで、その他は、exeです。

ありがとうございます。
昨日、返信を書いたと思ったのですが
返信が遅くなり申し訳ありません
すみません。
早速、取り入れてみます。

[ツリー表示へ]