从ListView到TreeView的拖动代码

转载 2004年09月18日 22:32:00

http://community.csdn.net/Expert/topic/2687/2687080.xml?temp=.9894525

从ListView到TreeView的拖动代码
//---------------------------------------------------------------------------

#include
#pragma hdrstop

#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
??? TreeView1->Selected = TreeView1->Items->Item[0];
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TreeView1DragOver(TObject *Sender, TObject *Source,
??????????? int X, int Y, TDragState State, bool &Accept)
{
??? if (Source == ListView1 || Source == TreeView1)
??? ?Accept = true;
??? else
??? ?Accept = false;
}
//---------------------------------------------------------------------------

?


void __fastcall TForm1::TreeView1DragDrop(TObject *Sender, TObject *Source,
????? int X, int Y)
{
??? TTreeNode* pDest = TreeView1->GetNodeAt(X, Y);
??? if (!pDest || pDest->Level != 0) return;
??? if (Source == TreeView1) {
??????? for (size_t index = 0; index != TreeView1->SelectionCount; ++index) {
??????????? TTreeNode* pNode = TreeView1->Selections[index];
??????????? if (pNode -> Level != 0)
??????????????? pNode->MoveTo(pDest, naAddChild);
??????? }
??? }
??? else if (Source == ListView1) {
??????? TTreeNode* pParent = TreeView1->Selected;
??????? if (!pParent) return;
??????? while (pParent->Level != 0)
??????????? pParent = pParent->Parent;
??????? TListItem* pItem = ListView1->Selected;
??????? TItemStates states;
??????? states<??????? while (ListView1->SelCount != 0) {
??????????? pParent->Item[pItem->Index]->MoveTo(pDest, naAddChild);
??????????? TListItem* pTemp = pItem;
??????????? pItem = ListView1->GetNextItem(pItem, sdBelow, states);
??????????? pTemp->Delete();
??????? }
??? }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::TreeView1Click(TObject *Sender)
{
??? ListView1->Items->Clear();
??? TTreeNode* pNode = TreeView1->Selected;
??? if (!pNode || pNode->Level != 0) return;
??? for (TTreeNode* pChild = pNode->getFirstChild(); pChild; pChild = pChild->getNextSibling()) {
??????? TListItem* pItem = ListView1->Items->Add();
??????? pItem->Caption = pChild->Text;
??? }
}
//---------------------------------------------------------------------------

DragMode=dmAutomatic

使用C#实现TreeView与TextBox之间互相拖拽

由于拖拽文件的便利性,目前已经越来越被广泛的开发人员接受,本文通过一个简单的事例来演示拖拽功能,以便正在学习相关知识的开发人员阅读,具体步骤如下: 1. 开发环境:    1) Microsoft V...
  • wangyong0921
  • wangyong0921
  • 2011年06月20日 17:07
  • 2056

关于TreeView和listView的一些小心得

这两天做一些小东西,用到了TreeView和listVIiew,在用TreeView时,遇到了一个小问题,就是删除节点时,怎么清除所有的子节点,想了半天没想出办法,幸得同事指点一二,马上解决,在此简单...
  • lqss20
  • lqss20
  • 2008年03月28日 13:28
  • 751

WinForm下的TreeView拖拽操作

http://www.cnblogs.com/zfqbt/archive/2009/12/17/1626582.html //开始拖动操作事件       private ...
  • u013908405
  • u013908405
  • 2017年02月09日 14:27
  • 1054

c# winform TreeView控件中实现拖拽的功能

    曾经做过一个Windows Form,需要在TreeView空间中实现拖拽的功能,首先我想介绍一下Windows Form中的TreeView控件:使用 Windows 窗体 TreeView...
  • mzoy
  • mzoy
  • 2007年08月27日 10:50
  • 9100

C# 支持拖放的TreeView控件,文件拖拽大全。

c# winform TreeView控件中实现拖拽的功能 必须处理好三种事件:"ItemDrag"(开始)、"DragEnter"(进入)、"DragDrop"(处理放下)。其中只有第...
  • wlanye
  • wlanye
  • 2012年05月07日 14:05
  • 3271

C语言 windows程序设计 关于ListView 和TreeView

LISTVIEW 这个控件真是太重要,对我来说,要写数据库方便的程序, 使用这个控件来操作是最简单的。 不错。最主要提OWNERDATA 风格的,用于显示数百万的记录, 这是我最感兴趣的方面,表格控件...
  • aasmfox
  • aasmfox
  • 2010年11月02日 09:55
  • 723

c#Treeview拖拽功能

c# winform TreeView控件中实现拖拽的功能     曾经做过一个Windows Form,需要在TreeView空间中实现拖拽的功能,首先我想介绍一下Windows Form中的Tre...
  • lvfeng19806001
  • lvfeng19806001
  • 2010年08月30日 16:59
  • 7297

c#中TreeView和ListView的一些用法

TreeView   TreeNode的Tag可以用来存储一个对象的引用(类似vc里面的SetData方法),可以用来存储相对于这个node的自己所需要的数据 添加首個節點使用TreeView....
  • rekrad
  • rekrad
  • 2013年01月18日 17:06
  • 3806

VS之treeview和listview拆分窗口

VS中,经常会使用到窗口的拆分技术,本文以treeview和listview来实现拆分窗口。...
  • bingdianlanxin
  • bingdianlanxin
  • 2014年12月22日 21:16
  • 1555

winform 两个TreeView间拖拽节点

http://www.cnblogs.com/rogation/p/3362920.html /// /// 正在拖拽的节点 /// ...
  • u013908405
  • u013908405
  • 2017年02月09日 14:38
  • 534
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:从ListView到TreeView的拖动代码
举报原因:
原因补充:

(最多只允许输入30个字)