TreeViewのノード上にマウスポインタを置いたときにマウスポインタの形を変えたい

解決


ユウジ  2009-11-11 19:37:32  No: 146497

たびたび質問で申し訳ありません。
VB2008でツリー構造を実現するために、TreeViewを使用したいと思います。
ツリーのノードをクリックした時に、そのノードに関連する処理を行いたい
のですが、
クリックできるということを知らせるため、マウスポインタの形をCursors.Hand(手の形)に変えたいのです。
・マウスがノード上にあるとき…Cursors.Hand
・マウスがノード上から離れたとき…Cursors.Default(元に戻す)
そこで、まずマウスがコントロールの上にあるときに発生するイベントを調べると、
TreeViewのNodeMouseHoverというイベントがありましたので、これを使えばいいかとも思いましたが、
それに対して、マウスがノードから外れたときのイベントが見当たりません。
上記を行うにはどのようにすればよいでしょうか?
よろしくお願いします。


魔界の仮面弁士  2009-11-11 20:08:21  No: 146498

MouseMove イベントにて、HitTest 判定を行ってみるとか。

TreeView1.Cursor = Cursors.Default
Dim ht = TreeView1.HitTest(e.Location)
If ht Is Nothing Then
    Return
ElseIf ht.Location = TreeViewHitTestLocations.PlusMinus Then
    TreeView1.Cursor = Cursors.Arrow
ElseIf ht.Location = TreeViewHitTestLocations.Label Then
    TreeView1.Cursor = Cursors.Hand
ElseIf ……
      :
      :
End If


ユウジ  2009-11-12 03:57:23  No: 146499

魔界の仮面弁士様、いつもお世話になっております。
教えていただいた方法で実現できました。
HitTestというものを初めて知りました。
ありがとうございました。助かりました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加