投稿者 るしぇ  (社会人) 投稿日時 2009/8/21 22:44:21
大発見ですよねぇ。トマトさんの視点はボクも一目置いてます。
同じハンドル名を使い続けている限りチェックさせていただきます。

設計の視点から考えれば納得ですよね。
マウスの処理は MouseClick の処理を共通で使っているんでしょうね。
そこから出力される情報は MouseEventArgs に格納。Click イベントに
流用しているのでしょう。
キーボード入力は当然、別処理で、持ってる情報にマウスの情報が無く、
EventArgs そのまま使ってるんですね。

Click イベント側ではどちらも共通している EventArgs の部分だけ
使うわけです。

継承が有効な場面の例になりますね。

> '内部イメージ 
ボクはクライアント中心の開発者なので、あんまり内部構造を気にした
ことが無いのですが、OSはウィンドウメッセージによる制御をしてますから
メッセージによる単純な分岐じゃないかと思います。
        '内部イメージ 
        If メッセージ = WM_マウスクリック Then
            Dim tmp As MouseEventArgs = New MouseEventArgs(Windows.Forms.MouseButtons.Left, 1, 100, 200, 2)
            RaiseEvent Button1_Click(Button1, tmp)
            RaiseEvent Button1_MouseClick(Button1, tmp)
        End If

        If メッセージ = WM_キーボードクリック Then
            Dim tmp As EventArgs = New EventArgs()
            RaiseEvent Button1_Click(Button1, tmp)
        End If