アニメーションが終了したときにメソッドを呼び出す必要があります。私はこのステートメントを使用しています:パラメータでメソッドを呼び出す
AddHandler anim.Completed, AddressOf anim_completed
しかし、私は、パラメータを持つanim_completedサブしたいです。任意のアイデアをどのように行うには?
アニメーションが終了したときにメソッドを呼び出す必要があります。私はこのステートメントを使用しています:パラメータでメソッドを呼び出す
AddHandler anim.Completed, AddressOf anim_completed
しかし、私は、パラメータを持つanim_completedサブしたいです。任意のアイデアをどのように行うには?
シンプルなソリューション。匿名イベントハンドラを使用すると、楕円オブジェクトに直接アクセスできます。
Dim target As Ellipse = Nothing
AddHandler anim.Completed, Sub()
If target IsNot Nothing Then
End If
End Sub
あなたの代理人/方法は、イベントと同じ署名を持つ必要があります。しかし、そのイベントの中で、あなたはいつでもあなたが望むものを呼び出すことができます。
AddHandler anim.Completed, AddressOf onAnimCompleted
Sub onAnimCompleted(sender As Object, e As EventArgs)
Dim target As New Ellipse
anim_completed(target)
End Sub
しかし、私は既存の楕円を渡したい – Eae
@Eae私の例のように新しい楕円を作成する代わりに、既存の楕円を得ることができます。 –
サブメニューにパラメータを追加するだけで、わかりません。また、メソッド名には作業が必要です。アッパーラクテルケース。 –
なぜ私はそれを試していないと思いますか?とにかく、私はサブに私がこれを取得する場合: 'Public Sub anim_completed(Target as Ellipse)'は代理人 'Delegate Sub EventHandler(送信者オブジェクトとしてe、EventArgsとして)と互換性のある署名を持っていません。 – Eae
[完了](https://msdn.microsoft.com/en-us/library/system.windows.media.animation.timeline.completed(v = vs.110).aspx)は、ハンドラメソッド固定された署名で。あなたはそれを変更することはできません。 – Clemens