【概要】
UltraWinTree上でマウスポインターが示しているノードを取得したい場合、マウスイベントとUltraTree.GetNodeFromPointメソッドを併用します。
【該当するコンポーネント】
UltraWinTree
【詳細】
ツリー形式のUIを採用した場合、ノードをクリックする以前に、マウスを重ねただけで何らかのアクション(たとえばノードの詳細情報をツールチップ的に表示するなど)を行う要求は多々あります。
そんな時は、UltraTree.GetNodeFromPointメソッドを使用します。
GetNodeFromPointメソッドの引数としてマウスの現在位置を渡すことで、ツリーに含まれるノードに関するヒットテストを行います。結果として該当するノードがある場合は、UltraTreeNodeオブジェクトを返します。もし何も存在しない場合はNull(Nothing)を返します。
またこれらのケースにおいてマウス位置の取得を行うためには、MouseMoveやMouseUpなどのイベントを使用することが多いでしょう。
(実装例)
C#
private void ultraTree1_MouseMove(object sender, MouseEventArgs e) { UltraTree tree = sender as UltraTree; UltraTreeNode node = tree.GetNodeFromPoint(e.Location); if (node == null) { this.ultraTextEditor1.Text = ""; } else { this.ultraTextEditor1.Text = node.Text; } }
VB
Private Sub Form1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove Dim tree As UltraTree = CType(sender, UltraTree) Dim node As UltraTreeNode = tree.GetNodeFromPoint(e.Location) If node Is Nothing Then UltraTextEditor1.Text = "" Else UltraTextEditor1.Text = node.Text End If End Sub