【概要】
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

Tagged:

製品について

Ultimate UI for Windows Forms