VB.NETでの一般的なイベントハンドラ
-
21-08-2019 - |
質問
私は自分のフォーム上の周りに10個のボタンを持っていると私は彼らが同じClickイベントハンドラを呼び出したい。
しかし、そのために、私は一般化するために、我々はイベントを発生させたコントロールを参照するためにVB.NETで「この」キーワードを持っていないイベントハンドラを必要とします。
どのように私はVB.NETで「この」キーワードの機能を実装していますか?
私は、次の処理を行い、イベントハンドラを記述することができるようにしたい。
Private Sub cmdButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdButton1.Click
currentTag = this.Tag
End Sub
解決
どのように私はVB.NETで「この」キーワードの機能を実装していますか?
this
はVBにMe
と呼ばれています。しかし、これはあなたのコードとは何の関係も持っていないし、あなたの場合、おそらく現在のForm
で、含むクラスを指します。あなたはsender
にキャストした後、Control
オブジェクトパラメータにアクセスする必要があります:
currentTag = DirectCast(sender, Control).Tag
他のヒント
VB.NET には、Me
は、C#のthis
と等価です。
私はあなたがMe
キーワードをしたいと考えています。
VB.NETのthis
でme
と呼ばれ、VB.NETのためのハンドラに関するあなたの2番目の質問のためのソリューションですされます:
Handles
文の末尾にPrivate Sub
を追加することができます
Private Sub cmdButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles cmdButton1.Click, 'cmdButton2.click, cmdButton3.click'
currentTag = this.Tag
End Sub
所属していません StackOverflow