tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル呼び出し元のフォーム名を知りたいのですが
記事No4093
投稿日: 2006/08/17(Thu) 13:09
投稿者田中
お世話になります。
VB.NET2003 で開発しております。

KensakuというShowDialogで色々なフォームから
呼び出されるフォームがあります。

このKensakuというフォームの中で、
どのフォームから呼び出されたか知る方法が
どうしても分かりません。

ParentformとかOwnerとかがあったので、
me.parentform.nameやme.owner.nameなどでやってみたのですが、
エラーになってしまいます。

過去ログも「親フォーム」でやってみたのですが、
見当たらず、全く先に進めない状況に陥っています。

どなた様かお分かりになる方がいらっしゃいましたら
お教え願えませんでしょうか。

[ツリー表示へ]
タイトルRe: 呼び出し元のフォーム名を知りたいのですが
記事No4094
投稿日: 2006/08/17(Thu) 14:39
投稿者Blue
ShowDialogの引数に Me を指定していますか?
指定していれば、
> me.parentform.nameやme.owner.nameなどでやってみたのですが、
がうまくいくと思いますけど。

[ツリー表示へ]
タイトルRe^2: 呼び出し元のフォーム名を知りたいのですが
記事No4095
投稿日: 2006/08/17(Thu) 15:31
投稿者田中
返信有難うございます。

呼び出し元フォームで

Dim Myform as New Form Kensaku
      Kensaku.ShowDialog(me)

で良かったんですか!?

そして、呼び出されたフォームKensakuで
   me.Parentform.nameで呼び出し元フォーム名が
参照できるのでしたか。

すぐにやって見ます。有難うございました。

[ツリー表示へ]
タイトルRe^3: 呼び出し元のフォーム名を知りたいのですが
記事No4096
投稿日: 2006/08/17(Thu) 15:37
投稿者田中
すみません

やってみたのですが、

'System.NullReferenceException' のハンドルされていない例外が PTA.exe で発生しました。
追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。

となってしまいます。

呼び出されたKensakuフォームで
msgbox(me.parentform.name)の箇所で出ました。

[ツリー表示へ]
タイトルRe^4: 呼び出し元のフォーム名を知りたいのですが
記事No4097
投稿日: 2006/08/17(Thu) 15:48
投稿者Blue
ShowDialogで設定されるのはOwerプロパティのほうだったかも。
Form.ShowDialog メソッド (IWin32Window)  
http://msdn2.microsoft.com/ja-jp/library/w61zzfwe.aspx

参考)
Visual Basic 初級講座 第29回 2つ目のフォーム
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard29.htm

[ツリー表示へ]
タイトルRe^5: 呼び出し元のフォーム名を知りたいのですが
記事No4098
投稿日: 2006/08/17(Thu) 17:36
投稿者田中
有難うございます。

呼び出し元
        Dim kensaku As New Kensaku
        kensaku.Owner = Me
        kensaku.ShowDialog()

呼び出し先(Kensaku)
    Dim ThisOwner As Form
    ThisOwner = Me.Owner

上記でできました。  
  
度々の質問で申し訳ないのですが、
このKensakuフォームからOwnerフォームのコントロールを
参照するにはどうしたらよいのでしょうか。

Dim ThisControl as TextBox
ThisControl = ThisOwner.Textbox1

こんなイメージなのですが・・・

[ツリー表示へ]
タイトルRe^6: 呼び出し元のフォーム名を知りたいのですが
記事No4099
投稿日: 2006/08/17(Thu) 17:41
投稿者るしぇ
当サイトのTipsに目を通すことをお勧めします。
http://hanatyan.sakura.ne.jp/dotnet/form10.htm

親子関係のあるフォームで子が親の操作をするのは
悪い設計とされていますので、ボクの場合は子フォームに
イベントを定義して、親フォームでそのイベントを取得して
親フォームが処理を実行する形にしていますが。。。

[ツリー表示へ]
タイトルRe^7: 呼び出し元のフォーム名を知りたいのですが
記事No4103
投稿日: 2006/08/18(Fri) 13:41
投稿者田中
有難うございます。

ご指示の通りの方法でやって見ようと思います。
説明のページのリンクまで付けていただき有難うございます。

早速、やってみます。

[ツリー表示へ]