【KBJ10046】UltraTree上でマウスポインターの位置のノードを取得するためには

0 ユーザーが評価
この投稿には確認済みの回答があります。 0 返信 | 1 サポーター

トップ 10 投稿者 
男性
投稿 45
IG Employee

【概要】
UltraTree上でマウスポインターが示しているノードを取得したい場合、マウスイベントとUltraTree.GetNodeFromPointメソッドを併用します。
 
【該当するコンポーネント】
UltraWinTree
 
【該当するバージョン】
全てのバージョン
 
【記事の種類】
How-to
 
【詳細】
ツリー形式の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

ページ 1 / 1 (1 項目) | RSS
Infragistics Japan
インフラジスティックス ジャパン