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

ボタンが押されたときの処理

環境/言語:[VB2005]
分類:[VB6以前]

お世話になります、
現在VB2005勉強中。

デザイン、フォーム1 ボタン(1)ボタン(2) フォーム2ボタン1つ

簡単な質問なんですが、フォーム1でボタン(1),(2)それぞれ押されたときに
フォーム2にいきそれぞれメッセージボックスで"ボタン(1)がおされました"
"ボタン(2)がおされました"と表示させたいのですがどのようにすればできるでしょうか?
ご教授よろしくお願いいたします。
■No23594に返信(スターさんの記事)
> 簡単な質問なんですが、フォーム1でボタン(1),(2)それぞれ押されたときに
> フォーム2にいきそれぞれメッセージボックスで"ボタン(1)がおされました"
> "ボタン(2)がおされました"と表示させたいのですがどのようにすればできるでしょうか?

Form2 に判断できる何かを渡せば判別できますよね。
Button1 と Button2 とで識別できるものにすれば良いでしょう。

VB6 以前とのことなので、VB6 で書きました。
(でも VB2005 勉強中? まあ VB.NET でも同じ理屈でできます)
まず Form2 に受け取り用のメソッドを定義します。

Private m_Reason As String

Public Sub SetShowReason(ByVal reason As String)
  m_Reason = reason
End Sub

次に Form1 の CommandButton の Click イベントでそれぞれを渡します。

Private Sub CommandButton1_Click()
    Dim f As Form2
    Set f = New Form2

    Call f.SetShowReason("Button1")
    Call f.Show()
End Sub

Private Sub CommandButton2_Click()
    Dim f As Form2
    Set f = New Form2

    Call f.SetShowReason("Button2")
    Call f.Show()
End Sub

これで、Form2 のプライベート フィールドの m_Reason から Button1 と Button2 が取得できます。
じゃんぬねっと様

VB6以前じゃなく.NETです。
すみませんでした。

コードを元に作成し無事作業終了しました。
お忙しい中ご親切にありがとうございました。

値の受け渡しについては自分は嫌いで難しいものだと思っていましたが、
イメージが変わった気がします。
VB中学を先ほど見ましたら、じゃんぬねっとさんと同じ考えの構文が・・・
調べ方が甘いので気をつけて勉強します。

ご回答本当にありがとうございました。

解決済みとさせていただきます。
解決済み!

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