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