• ベストアンサー

イベント内で別イベントを呼ぶ方法

早速質問させていただきます。 Form上にDataGridView(dgv)があります。 dgvのセルをマウスでダブルクリックした時に処理を入れております。 Private Sub dgv_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv.CellDoubleClick   If e.RowIndex = -1 Then     Exit Sub   End If   '//処理 End Sub このdgv上でEnterキーを押した際に、ダブルクリックしたのと同じ処理を 行いたいのですが、このような場合、どのような実装をするのが一般的なのでしょうか? 例えば、下記の様にCall dgv_CellDoubleClick(sender, e)をするとEventArgsが合わないためエラーになってしまいます。 適切な方法をご教授お願い致します。 Private Sub dgv_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dgv.KeyDown   If e.KeyCode = Keys.Enter Then     Call dgv_CellDoubleClick(sender, e)   End If End Sub

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

eの中で使用するものだけを引数とした関数を用意すればいいんじゃないでしょうか?(私ならそうします。^^;) Private Sub dgv_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv.CellDoubleClick   call 処理(e.rowIndex) End Sub Private Sub dgv_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dgv.KeyDown   If e.KeyCode = Keys.Enter Then     Dim rowIndex as integer = 選択行取得命令     Call 処理(rowIndex)   End If End Sub な感じですかね。

adminchan
質問者

お礼

mjsamiasanさん、ご回答ありがとうございます。 やはり普通に別プロシージャにしてやって引数を与える方法で進めます。 ありがとうございました。

その他の回答 (1)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

別に共通のプロシージャを作り、たとえば Public Sub Common1() 処理 End Sub としておき(同じフォーム内のコードだとPrivateでもかまいませんが) Private Sub dgv_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv.CellDoubleClick   If e.RowIndex = -1 Then     Exit Sub   End If   Call Common1 End Sub Private Sub dgv_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dgv.KeyDown   If e.KeyCode = Keys.Enter Then     Call Common1   End If End Sub としてはいかがでしょうか。

adminchan
質問者

お礼

ham_kamoさん、ご回答ありがとうございます。 やはり普通に別プロシージャにしてやるべきなんですね。 ありがとうございました。

関連するQ&A