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

解決


you  2003-10-31 00:33:04  No: 109594

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


ねろ  2003-10-31 06:01:45  No: 109595

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


you  2003-10-31 18:04:46  No: 109596

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


ねろ  2003-10-31 19:27:17  No: 109597

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 22:52:48  No: 109598

ねろさんありがとうございます。
それはちょっと目からウロコです。
ところで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 23:32:27  No: 109599

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

Set objForm = objFN

とやります。


you  2003-10-31 23:36:01  No: 109600

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加