DOBON.NET DOBON.NETプログラミング掲示板過去ログ

イベントの発生元はどのコントロールかを知りたい

環境/言語:[W]
分類:[.NET]

毎度、お世話になります。

現在、複数のTextBoxコントロールを同じイベントハンドラに関連付けて処理をさせようとしているのですが、イベントを発生させたのがどのコントロールなのか分からないので困っています。

内容は以下のような感じでコーディングしています。

Private Sub Txt_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Txt_A.Leave, Txt_B.Leave, Txt_C.Leave, Txt_D.Leave, Txt_E.Leave

'----- 処理内容記述 ----
 
End Sub

フォーカスが移動した直前にどのTextBoxにフォーカスがいたのかが知りたいです。

どなたか教えて下さい。
きいぼーです。
イベントの引数の、senderオブジェクトが
イベントを発生させたオブジェクトですので、
名前などで判定させたらいかがでしょうか?
■No3411に返信(きいぼーさんの記事)
> きいぼーです。
> イベントの引数の、senderオブジェクトが
> イベントを発生させたオブジェクトですので、
> 名前などで判定させたらいかがでしょうか?
>
ありがとうございます。参考になります。
ところで、
senderオブジェクトを調べてみたのですが、
senderオブジェクトのメソッドを使えば
コントロールを特定でるのでしょうか?
名前を返すメソッドが分かりません。。。
http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=3370&rev=&no=0
先日、↑のほうにも関連する話を書いたのでこちらにも。

このオブジェクトsenderは、まさにイベントの発生元となるコントロール自身(の参照)で、この場合ではその正体はイベントを発生させたTxt_AやTxt_Bなど自身ということになります。したがって、以下のように直接比較を行って調べることができます。

If sender Is Txt_A Then
'senderはTxt_Aでした
ElseIf sender Is Txt_B Then
'senderはTxt_Bでした
'(以下略)
End If
ありがとうございました。
イベントの発生元のコントロールを取得することができました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板