UltraTree コントロールは、Sort プロパティまたは SortComparer プロパティが変更されたとき、またはノードの Text が変更されたときに、並べ替えられたノードを自動的にリフレッシュします。そのため、これらの場合には RefreshSort メソッドを明示的に呼び出す必要はありません。ただし、SortComparer を Text 以外のプロパティによる並べ替えに使用している場合は、RefreshSort を呼び出す必要があります。たとえば、ノードの Tag プロパティに基づいて並べ替えを行っている場合、Tag が変更されてもノードの表示順はリフレッシュされません。RefreshSort を呼び出すと、ノードが再び並べ替えられます。
Imports Infragistics.Win.UltraWinTree Private Sub button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button17.Click Dim node As UltraTreeNode node = Me.ultraTree1.ActiveNode If node Is Nothing Then Return ' アクティブなノードがルート ノードであるかどうかを確認します If node.IsRootLevelNode Then ' ノードが最初のルート レベルのノードである場合、 ' 最後のノードになりますそれ以外の場合、最初のノードになります If node.Index = 0 Then node.Reposition(node, NodePosition.Last) Else node.Reposition(node, NodePosition.First) End If Else ' ノードの配置を変更するには、 ' ルート ノード コレクションに追加します node.Reposition(Me.ultraTree1.Nodes) ' ルート ノード コレクションを並べ替えた場合、 ' 配置変更したノードを適切に設定するために ' 再度並べ替えます If Not Me.ultraTree1.Nodes.SortResolved = SortType.None Then Me.ultraTree1.RefreshSort(Me.ultraTree1.Nodes, False) End If End If End Sub
using Infragistics.Win.UltraWinTree; private void button17_Click(object sender, System.EventArgs e) { UltraTreeNode node = this.ultraTree1.ActiveNode; if ( node == null ) return; // アクティブなノードがルート ノードであるかどうかを確認します if ( node.IsRootLevelNode ) { // ノードが最初のルート レベルのノードの場合、 // 最後のノードになりますそれ以外の場合、最初のノードになります if ( node.Index == 0 ) node.Reposition( node, NodePosition.Last ); else node.Reposition( node, NodePosition.First ); } else { // ノードの配置を変更するには、 // ルート ノード コレクションに追加します node.Reposition( this.ultraTree1.Nodes ); // ルート ノード コレクションを並べ替えた場合、 // 配置変更したノードを適切に設定するために // 再度並べ替えます if ( this.ultraTree1.Nodes.SortResolved != SortType.None ) this.ultraTree1.RefreshSort(this.ultraTree1.Nodes, false ); } }