'宣言 Public ReadOnly Property Parent As UltraTreeNode
public UltraTreeNode Parent {get;}
ルート ノードでは、戻り値は Nothing です。
Imports Infragistics.Win Imports Infragistics.Win.UltraWinTree Private Sub ultraTree1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ultraTree1.Click Dim mainElement As UIElement Dim element As UIElement Dim screenPoint As Point Dim clientPoint As Point Dim node As UltraTreeNode ' コントロールのメイン要素を取得します mainElement = Me.ultraTree1.UIElement ' 現在のマウス位置をコントロールのクライアント座標 ' のポイントに変換します screenPoint = Control.MousePosition clientPoint = Me.ultraTree1.PointToClient(screenPoint) ' そのポイントにある要素を取得します element = mainElement.ElementFromPoint(clientPoint) If element Is Nothing Then Return Debug.WriteLine("Clicked on an " + element.GetType().ToString()) Debug.Indent() ' その要素が含まれるグループを取得します node = element.GetContext(GetType(UltraTreeNode)) If Not node Is Nothing Then Debug.WriteLine("in node: " + node.Key + " - " + node.Text) End If ' 親要素 チェーンをたどり、各親要素について ' 1 行ずつ情報を出力します While Not element.Parent Is Nothing element = element.Parent Debug.WriteLine("is a child of an " + element.GetType().ToString()) Debug.Indent() End While 'インデント レベルをリセットします Debug.IndentLevel = 0 End Sub
using System.Diagnostics; using Infragistics.Win; using Infragistics.Win.UltraWinTree; private void ultraTree1_Click(object sender, System.EventArgs e) { UIElement mainElement; UIElement element; Point screenPoint; Point clientPoint; UltraTreeNode node; // コントロールのメイン要素を取得します mainElement = this.ultraTree1.UIElement; // 現在のマウス位置をコントロールのクライアント座標 // のポイントに変換します screenPoint = Control.MousePosition; clientPoint = this.ultraTree1.PointToClient( screenPoint ); // そのポイントにある要素を取得します element = mainElement.ElementFromPoint( clientPoint ); if ( element == null ) return; Debug.WriteLine( "Clicked on an " + element.GetType().ToString() ); Debug.Indent(); // この要素を含むノードを取得します node = element.GetContext( typeof( UltraTreeNode ) ) as UltraTreeNode; if ( node != null ) Debug.WriteLine( "in node: " + node.Key +" - " + node.Text ); // 親要素 チェーンをたどり、各親要素について // 1 行ずつ情報を出力します while (element.Parent != null ) { element = element.Parent; Debug.WriteLine("is a child of an " + element.GetType().ToString()); Debug.Indent(); } // インデント レベルをリセットします Debug.IndentLevel = 0; }