您现在的位置是:首页 >

qt拖拽控件 在Windows应用程序中支持拖拽的TreeView控件

火烧 2021-08-30 19:23:25 1121
在Wi dow 应用程序中支持拖拽的TreeView控件 概要 快速实现在Wi dow 应用程序中支持拖拽的TreeView控件 技术描述 TreeView已经提供了支持拖拽的事件 am # Item

在Windows应用程序中支持拖拽的TreeView控件  

概要 快速实现在Windows应用程序中支持拖拽的TreeView控件  技术描述 TreeView已经提供了支持拖拽的事件  &# ; ItemDrag: 用户拖拽TreeNode时触发 当它发生时 调用DoDragDrop方法初始化拖拽过程   &# ; DragEnter: 在你初始化拖拽操作后 你必须处理目标TreeView控件的DragEnter事件 这个事件发生在用户拖拽TreeNode对象从TreeView控件到目标控件范围点内 DragEnter事件能够指定目标TreeView控件 无论拖拽操作对这个控件是否用 代码中仅仅是移动操作   &# ; DragDrop: 最后是要处理目标TreeView的DragDrop事件 这个事件发生在用户推拽TreeNode对象并释放到目标控件中 处理这个事件 返回TreeNode对象并添加到目标TreeView控件上 代码中用Data对象返回   以下代码实现一个TreeView控件上拖拽任意节点到指定节点上 也可以自己扩展为多个TreeView控件间TreeNode相互拖拽的程序 Data对象的GetData方法返回被拖拽的TreeNode对象 GetNodeAt方法用来确定这个TreeNode对象拖拽到的目标控件(这里就是目标TreeNode对象) 在确定位置之后把源TreeNode对象添加到目标TreeNode对象下面 作为其子结点 因为是移动操作 因此最后会把源TreeNode对象删除掉  通过以下几步创建实例程序    创建C# Windows应用程序    界面增加一个TreeView控件    设置TreeView的AllowDrop属性设置为True    Page_Load方法中增加如下代码   private void Form _Load(object sender System EventArgs e)               { // TreeView控件增加一些测试节点                     TreeNode ParentNode ;                     ParentNode = treeView Nodes Add( tv );                     ParentNode Nodes Add( tv FirstChild );                     ParentNode Nodes Add( tv SecondChild );                     ParentNode Nodes Add( tv ThirdChild );                     ParentNode Nodes Add( tv FourthChild );                     ParentNode Expand();  // TreeView控件增加事件                     this treeView ItemDrag += new System Windows Forms ItemDragEventHandler(this treeView_ItemDrag);                     this treeView DragEnter += new System Windows Forms DragEventHandler(this treeView_DragEnter);                     this treeView DragDrop += new System Windows Forms DragEventHandler(this treeView_DragDrop);               }    //treeView_ItemDrag 事件代码  private void treeView_ItemDrag(object sender                      System Windows Forms ItemDragEventArgs e)               {                     DoDragDrop(e Item DragDropEffects Move);               }    // treeView_DragEnter事件代码  private void treeView_DragEnter(object sender                      System Windows Forms DragEventArgs e)               {                     e Effect = DragDropEffects Move;               }     // treeView_DragDrop事件代码  private void treeView_DragDrop(object sender System Windows Forms DragEventArgs e)               {                     TreeNode NewNode;                      if(e Data GetDataPresent(typeof(TreeNode)))                     {                             Point pt = ((TreeView)sender) PointToClient(new Point(e X e Y));                             TreeNode DestinationNode = ((TreeView)sender) GetNodeAt(pt);                             NewNode = (TreeNode)e Data GetData

qt拖拽控件 在Windows应用程序中支持拖拽的TreeView控件
( System Windows Forms TreeNode );                             DestinationNode Nodes Add((TreeNode) NewNode Clone());                             DestinationNode Expand();                             //删除已经移动的节点                             NewNode Remove();                     }               }   lishixinzhi/Article/program/net/201311/11471  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码