none
他のForm上にあるButtonがクリックされたときのイベントの取得法 RRS feed

  • 質問

  • 今回もよろしくお願いします。

    VB2005とアクセスで開発しています。

    Form1にButton1~4の4つのコントロールがあります。

    それぞれのButtonを押したら、Form2を呼び出してクリックされたButtonに応じて分岐処理を行いたいのですが、Form2でどのようにしてForm1のButtonのClickイベントを拾うのか教えてください。

    Form1では、Form2の呼び出しを

     With New Form2          'フォーム呼び出し
                .ShowDialog()
            End With

     としています。

    Form2に、Form1.Button1.Click・・・と書こうとしたのですが入力候補になかったので何か別の方法なのか?と思いました。

     

     

    2006年11月4日 10:06

回答

  • momo-yo さん、こんにちは。

     momo-yo さんからの引用
    それぞれのButtonを押したら、Form2を呼び出してクリックされたButtonに応じて分岐処理を行いたいのですが、Form2でどのようにしてForm1のButtonのClickイベントを拾うのか教えてください。

            With New Form2          'フォーム呼び出し
                .ShowDialog()
            End With

    Form2 にプロパティを用意して、Form1 のどのボタンをクリックして表示されたかを示す値をそのプロパティを通してセットすれば良いと思います。

    2006年11月4日 10:44

すべての返信

  • momo-yo さん、こんにちは。

     momo-yo さんからの引用
    それぞれのButtonを押したら、Form2を呼び出してクリックされたButtonに応じて分岐処理を行いたいのですが、Form2でどのようにしてForm1のButtonのClickイベントを拾うのか教えてください。

            With New Form2          'フォーム呼び出し
                .ShowDialog()
            End With

    Form2 にプロパティを用意して、Form1 のどのボタンをクリックして表示されたかを示す値をそのプロパティを通してセットすれば良いと思います。

    2006年11月4日 10:44
  • じゃんぬねっとさま、こんにちは。返信ありがとうございました。

    Form2にプロパティを作る、とのことですが途中でつまってしまいました。すみませんが教えていただけませんか?

    Public but1_click As Object  

     Private Sub button1()

       but1_click = Form1.Button1.   ←この後にくるのが何かわかりません。

    よろしくお願いします。

     

     


     

    2006年11月4日 13:43
  • んーと、じゃんぬさんのおっしゃってるのはForm2側にプロパティを作成という方法ですね。 なので

        Private intButtonNo As Integer = Integer.MinValue
        Public Property ButtonNo() As Integer
            Get
                Return intButtonNo
            End Get
            Set(ByVal value As Integer)
                intButtonNo = value
            End Set
        End Property

    こんなようなものをForm2側に用意して

    Using frm = New Form2
         frm.ButtonNo = (押されたボタンの番号)
         frm.ShowDialog
    End Using

    という感じじゃないでしょうか?(^^; 

    2006年11月5日 0:07
  • ひろえむさま、こんにちは。返信ありがとうございました。

    参考書を見ながらプロパティの作成に挑戦してたんですが、ひろえむさんの返信を見て、見当違いのことをしていたとわかり、大変お恥ずかしい限りですコードを見ながら参考書を見ましたらプロパティの定義をする、という項目でGetステートメント、Setステートメントを使った参考コードが載っておりました。コードを見ると、そうか!と思うのですがたどり着くまでが大変で苦労してます。

    この度は例文コードを書いていただいてありがとうございました。おかげさまでボタンでの分岐処理をすることができました。まだわからないことが多くて質問ばかりですが見かけた際にはよろしくお願いします。

    2006年11月5日 5:05