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
  • 相关阅读:
    zyb的面试
    Codeforces Round #514 (Div. 2)
    Maximum GCD(fgets读入)
    Harmonic Number(调和级数+欧拉常数)
    Codeforces Round #516 (Div. 2, by Moscow Team Olympiad)
    Sigma Function (平方数与平方数*2的约数和是奇数)
    Leading and Trailing (数论)
    【贪心】【CF3D】 Least Cost Bracket Sequence
    【套题】qbxt国庆刷题班D1
    【极值问题】【CF1063B】 Labyrinth
  • 原文地址:https://www.cnblogs.com/51net/p/2447452.html
Copyright © 2011-2022 走看看