zoukankan      html  css  js  c++  java
  • 通过键盘方向键控制TreeView节点的移动

    本文转载:http://dengzebo.blog.163.com/blog/static/18867406201032141932204/

    View Code
         #region "控制树节点移动,向左右下上"
            /// <summary>
            
    /// 通过Ctrl+键盘移动选定的树节点
            
    /// </summary>
            
    /// <param name="TreeView1">要编辑的TreeView控件</param>
            
    /// <param name="eKeys">The <see cref="System.Windows.Forms.KeyEventArgs"/>KeyEventArgs为按键事件提供数据</param>
            public void MoveSelectNode(TreeView TreeView1, KeyEventArgs eKeys)
            {
                try
                {
                    if (TreeView1.SelectedNode == null)
                    {
                        return;
                    }

                    try
                    {
                        if (eKeys.KeyCode == Keys.Up && eKeys.Control == true)
                        {
                            TreeNode TN = new TreeNode();
                            TN = TreeView1.SelectedNode;
                            TreeNode TempNode = (TreeNode)TreeView1.SelectedNode.Clone();
                            if (TreeView1.SelectedNode.PrevNode == null)
                            {
                                return;

                            }
                            if (TN.Parent == null)
                            {
                                TreeView1.Nodes.Insert(TN.Index - 1, TempNode);
                            }
                            else
                            {
                                TN.Parent.Nodes.Insert(TN.Index - 1, TempNode);
                            }

                            TreeView1.SelectedNode.Remove();
                            TreeView1.SelectedNode = TempNode;
                        }

                        else if (eKeys.KeyCode == Keys.Down && eKeys.Control == true)
                        {
                            TreeNode TN = new TreeNode();
                            TN = TreeView1.SelectedNode;
                            TreeNode TempNode = (TreeNode)TreeView1.SelectedNode.Clone();
                            if (TreeView1.SelectedNode.NextNode == null)
                            {
                                return;
                            }
                            if (TN.Parent == null)
                            {
                                TreeView1.Nodes.Insert(TN.Index + 2, TempNode);
                            }
                            else
                            {
                                TN.Parent.Nodes.Insert(TN.Index + 2, TempNode);
                            }
                            TreeView1.SelectedNode.Remove();
                            TreeView1.SelectedNode = TempNode;
                        }
                        else if (eKeys.KeyCode == Keys.Left && eKeys.Control == true)
                        {
                            TreeNode TN = new TreeNode();
                            TN = TreeView1.SelectedNode;
                            TreeNode TempNode = (TreeNode)TreeView1.SelectedNode.Clone();
                            if (TreeView1.SelectedNode.Parent == null)
                            {
                                return;
                            }
                            else
                            {
                                if (TreeView1.SelectedNode.Parent.Parent == null)
                                {
                                    TreeView1.Nodes.Add(TempNode);
                                }

                                else
                                {
                                    TN.Parent.Parent.Nodes.Add(TempNode);
                                }
                            }
                            TN.Remove();
                            TreeView1.SelectedNode = TempNode;
                        }
                        else if (eKeys.KeyCode == Keys.Right && eKeys.Control == true)
                        {
                            TreeNode TN = new TreeNode();
                            TN = TreeView1.SelectedNode;
                            TreeNode TempNode = (TreeNode)TreeView1.SelectedNode.Clone();
                            if (TreeView1.SelectedNode.NextNode == null)
                            {
                                return;
                            }
                            TN.NextNode.Nodes.Insert(0, TempNode);
                            TN.Remove();
                            TreeView1.SelectedNode = TempNode;
                        }
                    }
                    catch
                    {

                    }

                }
                catch
                { }

            }

            #endregion
  • 相关阅读:
    (4.3)ODBC/OLE DB/ADO概念与使用情况
    查找至少连续出现三次的所有数字/连续3天的日期【LeetCode】
    javascript 事件触发
    document.referrer
    创业公司
    关于javascript 回调函数
    promise
    javascript deferred
    document.readystate
    window---->load, document------DOMContentLoaded
  • 原文地址:https://www.cnblogs.com/51net/p/2447452.html
Copyright © 2011-2022 走看看