dポイントプレゼントキャンペーン実施中!

VB.NETにてWindowsMobile5.0の開発をしております。

下記のようにテキストボックスにフォーカスがきたら色を変える処理をしてますが、
テキストボックスがたくさんある場合どこがフォーカスされているか知ってテキストボックスなら色を変えると言う処理にしたいです。
何卒、ご教授のほどよろしくお願いします。

Private Sub T_ATO_GetFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles T_ATO.GotFocus
T_ATO.BackColor = Color.Aqua
TextBox_ENT.Text = T_ATO.Text
End Sub

Private Sub T_ATO_LostFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles T_ATO.LostFocus
T_ATO.BackColor = Color.White
End Sub

A 回答 (2件)

テキストボックス分だけその2つの処理を書くと大変だと思うのですが、


下記ではどうでしょうか?

Private Sub TextBox_GotFocus(ByVal sender As Object, ByVal e As EventArgs) _
Handles TextBox1.GotFocus, _
TextBox2.GotFocus, _
TextBox3.GotFocus, _
TextBox4.GotFocus, _
TextBox5.GotFocus, _
TextBox6.GotFocus
Dim box As TextBox = CType(sender, TextBox)
box.BackColor = Color.Aqua
'TextBox_ENT.Text = T_ATO.Text
' 上記の処理が何なのか分かりませんが、TextBox個別に
' 処理をしたいならbox.Nameで名前を取得して判別できます。
End Sub

Private Sub TextBox_LostFocus(ByVal sender As Object, ByVal e As EventArgs) _
Handles TextBox1.LostFocus, _
TextBox2.LostFocus, _
TextBox3.LostFocus, _
TextBox4.LostFocus, _
TextBox5.LostFocus, _
TextBox6.LostFocus
Dim box As TextBox = CType(sender, TextBox)
box.BackColor = Color.White
End Sub

テキストボックスがどの位あるのか分かりませんが、たくさんと書かれていたので、こっちの方が管理しやすいかと思います。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
勉強になりました。

危うく全ての画面で長々と記述するところでした。^^;
助かりました。

お礼日時:2008/12/17 21:58

ActiveControl.Nameで現在のアクティブなコントロールの名前が取れるかと思います。


ご参考まで。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
勉強になりました。

お礼日時:2008/12/17 21:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!