コード例 #1
0
 private void programTree_KeyDown(object sender, KeyEventArgs e)
 {
     if (this.programTree.SelectedNode == null)
     {
         return;
     }
     if (e.Control && e.KeyCode == Keys.C)
     {
         var  node = this.programTree.SelectedNode.Tag as NodeParam;
         Type type = node.GetType();
         if (type == typeof(PCSParam) ||
             type == typeof(ReadCodeParam) ||
             type == typeof(BadmarkParam) ||
             type == typeof(PasteParam))
         {
             nodeParamCopy = (this.programTree.SelectedNode.Tag as NodeParam).Clone() as NodeParam;
             Debug.WriteLine("复制");
         }
         else
         {
             nodeParamCopy = null;
         }
     }
     else if (e.Control && e.KeyCode == Keys.V) // 拷贝
     {
         var parent = this.programTree.SelectedNode.Tag as NodeParam;
         if (parent == null || nodeParamCopy == null)
         {
             return;
         }
         Type type  = parent.GetType();
         Type type2 = nodeParamCopy.GetType();
         if (type2 == typeof(PCSParam) && type == typeof(PCBParam))
         {
             this.Flow.PCB.Nodes.Add(nodeParamCopy.Clone() as PCSParam);
             this.RefreshTree();
         }
         else if (type2 == typeof(PasteParam) && type == typeof(PasteListNode))
         {
             parent.Nodes.Add(nodeParamCopy.Clone() as PasteParam);
             this.RefreshTree();
         }
         else if (type2 == typeof(BadmarkParam) && type == typeof(BadmarkListNode))
         {
             parent.Nodes.Add(nodeParamCopy.Clone() as BadmarkParam);
             this.RefreshTree();
         }
         else if (type2 == typeof(MarkParam) && type == typeof(ReadCodeListNode))
         {
             parent.Nodes.Add(nodeParamCopy.Clone() as MarkParam);
             this.RefreshTree();
         }
     }
 }