在Treeliist中上下移动节点



在我的项目中,我正在尝试创建一个treelist usercontrol,以在按钮(上下和向下(的帮助下向上和向下移动节点,并在Treelist中始终可见焦点

c#

private void button1_Click(object sender, EventArgs e)
        {
            int LastNodeIndex = treeList1.GetNodeIndex(treeList1.Nodes.LastNode);
            int targetNodeIndex = treeList1.GetNodeIndex(treeList1.FocusedNode.PrevNode);
            if(targetNodeIndex==-1)
            {
                treeList1.SetNodeIndex(treeList1.FocusedNode, LastNodeIndex);
                treeList1.MakeNodeVisible(treeList1.FocusedNode);
            }
            else
            {
                int nodeIndex = treeList1.GetNodeIndex(treeList1.FocusedNode);
                treeList1.SetNodeIndex(treeList1.FocusedNode, targetNodeIndex);
                treeList1.MakeNodeVisible(treeList1.FocusedNode);
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            int targetNodeIndex = treeList1.GetNodeIndex(treeList1.FocusedNode.NextNode);
            int nodeIndex = treeList1.GetNodeIndex(treeList1.FocusedNode);
            treeList1.SetNodeIndex(treeList1.FocusedNode, targetNodeIndex);
            treeList1.MakeNodeVisible(treeList1.FocusedNode);
        }

在上述代码中,在没有父母和孩子的情况下上下移动节点。在这个阶段,它的工作正常。

如果用户焦点的根节点并单击按钮,则使用该索引获取最后一个节点索引值,我将Selected Node设置为lastNode位置,即使用户单击" root节点"中的用户,它将移动到last并使该节点可见Treelist。

但是,如果选定的节点是特定父母的第一个子节点,则在单击按钮时不会移动到最后一个孩子。如何实现这一目标?这可以做吗?给出一些想法。

我找到了解决方案,在这里,

c#

if(treeList1.FocusedNode.ParentNode!=null && foucsednodeindex == 0) // check its child node or not
        {
          int parentnodeindex = treeList1.GetNodeIndex(treeList1.FocusedNode.ParentNode);
            int foucsedindex = treeList1.GetNodeIndex(treeList1.FocusedNode);
            treeList1.SetFocusedNode(treeList1.FocusedNode.ParentNode);
            int count = treeList1.FocusedNode.Nodes.Count;

            treeList1.SetFocusedNode(treeList1.FocusedNode.NextVisibleNode);
             treeList1.SetNodeIndex(treeList1.FocusedNode, count);
            treeList1.MakeNodeVisible(treeList1.FocusedNode);
        }

相关内容

  • 没有找到相关文章

最新更新