どのformからshowされたか知るには?

解決


you  2003-10-30 15:33:04  No: 109594  IP: [192.*.*.*]

関数を呼ぶときは、
Public Sub hogehoge(objForm As Form)
関数をこんな感じにして
Call hogehoge(Me)
こう呼んでいるのですが、複数のformがあって
showさせたときにどのフォームから呼ばれたのか
子formが知るにはどうすればいいのでしょうか?

編集 削除
ねろ  2003-10-30 21:01:45  No: 109595  IP: [192.*.*.*]

呼び出したフォームのプロパティが
全て引数で渡されて来るので
呼び出す方で、
Me.Tagを設定しておけば
    objForm.Tag
なんかで呼び出し側のFormが判ると
思うのですが。

編集 削除
you  2003-10-31 09:04:46  No: 109596  IP: [192.*.*.*]

ごめんなさい、分かりづらい書き方をしていました。
書き直します。
たとえば、frmAがあって、frmCommonをfrmCommon.Showとしたとき、
frmCommonの方がfrmAから呼ばれたことを知るにはどうすればいいのか?ということです。
一対一ならfrmCommonに直にfrmA.cmdHogehogeとか書けばいいのだけど、
呼び元が複数あるのでどのformから呼ばれているのかが分からないのです。

編集 削除
ねろ  2003-10-31 10:27:17  No: 109597  IP: [192.*.*.*]

frmCommonのShowを他のFormから行わずに
自分でするように、
frmCommonの中に 
Public Sub MeShow(s)
    Me.Show
End Sub
等を作っておいて

呼び出す方は
Me.Tag = "1"(Caotionでも何でもいいけど)
frmCommon.MeShow (Me.Tag)

等とすれば呼び出し側のTagが渡るのでは。

編集 削除
you  2003-10-31 13:52:48  No: 109598  IP: [192.*.*.*]

ねろさんありがとうございます。
それはちょっと目からウロコです。
ところでformを丸ごと渡してやろうとしたのですが、★のところでエラーになります。
何がおかしいのでしょうか?

呼び出し元
Private Sub cmdExec_Click()
    Call frmCommon.FormLoadMe(Me)
End Sub

共通フォーム(frmCommon)
Private objForm As Form
Private Sub Form_Load()
    lblLabel1.Caption = objForm.txtLabel.Text
End Sub
Public Sub FormLoadMe(objFN As Form)
    objForm = objFN                    ←★
    Me.Show 1
End Sub

編集 削除
ねろ  2003-10-31 14:32:27  No: 109599  IP: [192.*.*.*]

オブジェクトの割り当て方法が違います 

Set objForm = objFN

とやります。

編集 削除
you  2003-10-31 14:36:01  No: 109600  IP: [192.*.*.*]

ああ!そういうことか〜。
ありがとうございます。
思い通りのことが出来ました。

編集 削除