想知道我是錯誤還是遇到了錯誤。
我與父母和孩子有一個網格。我已經制作了按鈕來將節點從上到下再往后移動。這可行,但第一個選定的節點仍處于選中狀態。應該移動的節點可以根據需要移動。為什么仍然顯示第一個選擇的節點?
private void IDC_ARROW_UP_Click(object sender, System.EventArgs e)
{
foreach (Infragistics.Win.UltraWinTree.UltraTreeNode Node in this.uTreeMenue.SelectedNodes)
{
Node.Reposition(Node, Infragistics.Win.UltraWinTree.NodePosition.Previous);
Node.Selected = true;
}
}
選擇的節點如下圖所示:

uj5u.com熱心網友回復:
試試下面的代碼:
private void IDC_ARROW_UP_Click(object sender, System.EventArgs e)
{
var selected = uTreeMenue.SelectedNodes;
selected.SortByPosition();
var cnt = selected.Count;
if (cnt > 0 && selected[0].PrevVisibleNode is UltraTreeNode node)
{
node.Reposition(selected[cnt - 1], Infragistics.Win.UltraWinTree.NodePosition.Next);
}
}
上面代碼中實作的邏輯非常簡單。不是將所有選定節點(例如Canada…France下圖)向上移動,而是將位于所有選定專案之前的第一個節點移動到所有選定專案之后:

因此,在將所有選定項之前的節點向下移動(在測驗示例中為Brazil項)之后,UltraTree控制元件將如下所示:

要正確確定所選專案的限制,應使用該SortByPosition()方法對集合進行排序,該方法對SelectedNodes集合進行排序,以使成員以與樹中相同的順序出現。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/475052.html
