コードでイベントを発生させる方法は?

解決


町や空に  2009-11-17 03:29:15  No: 142850

WinXP上のVB2005です。
フォームにButton1とButton2を置いて,Button1をクリックしたとき,Button2にも例えばクリックイベントを発生させる方法はありますか。

具体的には
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  ***
End Sub
で,***の部分に例えば
Button2.MakeEvent.Click
のようなコードを書いて,擬似的にButton2をクリックしたというイベントを発生させる方法があるかという疑問です。これができれば応用範囲は広いと思います。

過去ログをキーワード「イベントを発生」で検索したら,何個かありましたが,結局理解できませんでした。的外れな質問かも知れませんが,宜しくお願いします。


GOD  2009-11-17 03:45:03  No: 142851

AddHandler ステートメント。


魔界の仮面弁士  2009-11-17 04:07:02  No: 142852

> 擬似的にButton2をクリックしたというイベントを発生させる方法
Button の場合には、PerformClick メソッドを使う事ができます。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.button.performclick.aspx

> これができれば応用範囲は広いと思います。
う〜ん。そういう場合には、単に

  Private Sub Foo()
    'やりたい処理を記述
  End Sub

  Private Sub Button2_Click()
    Foo()
  End Sub

のように実装するだけで良いのでは無いでしょうか。
Button2 の Click イベントを発生させずとも、Foo を呼ぶだけで済みますよね。

以下余談:

> コードでイベントを発生させる方法は?
自作イベントの場合には、RaiseEvent ステートメントを使って、
イベントを発生させることができます。

既にあるイベントを意図的に発生させたい、という場合においては、
多くの場合、OnEventName メソッド(例: OnClick) が用意されて
いますので、それを呼ぶことで、各種イベントを発生させる事もできます。
ただし、これらのメソッドは通常、外部から利用するためのものでは
無いため、Protected スコープに設定されている点に注意してください。


魔界の仮面弁士  2009-11-17 04:08:57  No: 142853

> Private Sub Button2_Click()
上記は、

Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click

の間違いです。m(_ _)m

# 意図は伝わるかと思いますが、一応訂正。


町や空に  2009-11-17 05:25:51  No: 142854

GODさん,魔界の仮面弁士さん,御指導ありがとうございました。
御指導頂いた事柄をベースに研究した結果,目的を達成しました。以後活用していきます。ありがとうございました。


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




  


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