给你点原码希望对你有帮助!
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace DragTreeItem
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.TreeView treeView1;
private System.Windows.Forms.ImageList imageList1;
private System.ComponentModel.IContainer components;
private System.Windows.Forms.TreeNode oldNode;
private System.Drawing.Color oldNodeForeColor;
private System.Drawing.Color oldNodeBackColor;
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
oldNode = null;
//
// TODO: Add any constructor code after InitializeComponent call
//
} /// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} #region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
this.treeView1 = new System.Windows.Forms.TreeView();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
this.SuspendLayout();
//
// treeView1
//
this.treeView1.AllowDrop = true;
this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
this.treeView1.ImageList = this.imageList1;
this.treeView1.Name = "treeView1";
this.treeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
new System.Windows.Forms.TreeNode("Node0", 0, 0, new System.Windows.Forms.TreeNode[] {
new System.Windows.Forms.TreeNode("Node1", 2, 2)}),
new System.Windows.Forms.TreeNode("Node0", new System.Windows.Forms.TreeNode[] {
new System.Windows.Forms.TreeNode("Node3", 2, 2)}),
new System.Windows.Forms.TreeNode("Node1"),
new System.Windows.Forms.TreeNode("Node2", new System.Windows.Forms.TreeNode[] {
new System.Windows.Forms.TreeNode("Node4", 0, 1, new System.Windows.Forms.TreeNode[] {
new System.Windows.Forms.TreeNode("Node5", 2, 2)})}),
new System.Windows.Forms.TreeNode("Node6"),
new System.Windows.Forms.TreeNode("Node7", new System.Windows.Forms.TreeNode[] {
new System.Windows.Forms.TreeNode("Node8", new System.Windows.Forms.TreeNode[] {
new System.Windows.Forms.TreeNode("Node9", new System.Windows.Forms.TreeNode[] {
new System.Windows.Forms.TreeNode("Node11")}),
new System.Windows.Forms.TreeNode("Node10")})})});
this.treeView1.Size = new System.Drawing.Size(292, 266);
this.treeView1.TabIndex = 0;
this.treeView1.AfterExpand += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterExpand);
this.treeView1.AfterCollapse += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterCollapse);
this.treeView1.DragOver += new System.Windows.Forms.DragEventHandler(this.treeView1_DragOver);
this.treeView1.DragEnter += new System.Windows.Forms.DragEventHandler(this.treeView1_DragEnter);
this.treeView1.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.treeView1_ItemDrag);
this.treeView1.DragDrop += new System.Windows.Forms.DragEventHandler(this.treeView1_DragDrop);
//
// imageList1
//
this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
this.imageList1.ImageSize = new System.Drawing.Size(16, 16);
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.treeView1});
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false); }
#endregion /// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace DragTreeItem
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.TreeView treeView1;
private System.Windows.Forms.ImageList imageList1;
private System.ComponentModel.IContainer components;
private System.Windows.Forms.TreeNode oldNode;
private System.Drawing.Color oldNodeForeColor;
private System.Drawing.Color oldNodeBackColor;
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
oldNode = null;
//
// TODO: Add any constructor code after InitializeComponent call
//
} /// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} #region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
this.treeView1 = new System.Windows.Forms.TreeView();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
this.SuspendLayout();
//
// treeView1
//
this.treeView1.AllowDrop = true;
this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
this.treeView1.ImageList = this.imageList1;
this.treeView1.Name = "treeView1";
this.treeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
new System.Windows.Forms.TreeNode("Node0", 0, 0, new System.Windows.Forms.TreeNode[] {
new System.Windows.Forms.TreeNode("Node1", 2, 2)}),
new System.Windows.Forms.TreeNode("Node0", new System.Windows.Forms.TreeNode[] {
new System.Windows.Forms.TreeNode("Node3", 2, 2)}),
new System.Windows.Forms.TreeNode("Node1"),
new System.Windows.Forms.TreeNode("Node2", new System.Windows.Forms.TreeNode[] {
new System.Windows.Forms.TreeNode("Node4", 0, 1, new System.Windows.Forms.TreeNode[] {
new System.Windows.Forms.TreeNode("Node5", 2, 2)})}),
new System.Windows.Forms.TreeNode("Node6"),
new System.Windows.Forms.TreeNode("Node7", new System.Windows.Forms.TreeNode[] {
new System.Windows.Forms.TreeNode("Node8", new System.Windows.Forms.TreeNode[] {
new System.Windows.Forms.TreeNode("Node9", new System.Windows.Forms.TreeNode[] {
new System.Windows.Forms.TreeNode("Node11")}),
new System.Windows.Forms.TreeNode("Node10")})})});
this.treeView1.Size = new System.Drawing.Size(292, 266);
this.treeView1.TabIndex = 0;
this.treeView1.AfterExpand += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterExpand);
this.treeView1.AfterCollapse += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterCollapse);
this.treeView1.DragOver += new System.Windows.Forms.DragEventHandler(this.treeView1_DragOver);
this.treeView1.DragEnter += new System.Windows.Forms.DragEventHandler(this.treeView1_DragEnter);
this.treeView1.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.treeView1_ItemDrag);
this.treeView1.DragDrop += new System.Windows.Forms.DragEventHandler(this.treeView1_DragDrop);
//
// imageList1
//
this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
this.imageList1.ImageSize = new System.Drawing.Size(16, 16);
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.treeView1});
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false); }
#endregion /// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
解决方案 »
- C#中正则表达式如何捕获子匹配?
- 请教`如何在窗体中``存放组成动画的图片
- 请高手指教不解压压缩包读取压缩包内文件的方法,在线等
- char d = '大';要写什么样的代码我才能看到这个d占多大空间,就是几字节,每个字节分别存了什么,还有是按照哪种编码方法存的,比如是utf-16还是什么的
- 求助
- 关于DateTimePicker控件
- 急问C#里面如何编译dll文件
- 关闭子窗体应该用Close()还是Dispose()
- 正则表达式在foreach 中连续使用的问题。。。
- Microsoft Application Blocks Data for .net 組件怎樣配置到vs2005
- 请问如何在C#中调用LDAP API
- C#关于在DataGrid中进行录入修改删除问题,难!请教诸位哥哥帮忙!
{
e.Node.ImageIndex=0;
e.Node.SelectedImageIndex=0;
} private void treeView1_AfterExpand(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
e.Node.ImageIndex= 1;
e.Node.SelectedImageIndex=1;
} private void treeView1_ItemDrag(object sender, System.Windows.Forms.ItemDragEventArgs e)
{
DoDragDrop(e.Item, DragDropEffects.Move);
} private void treeView1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
object data = e.Data.GetData(typeof(TreeNode));
if(data!=null)
{
TreeNode dragNode = (TreeNode)data;
if(dragNode.TreeView.Equals(treeView1))
{
e.Effect=DragDropEffects.Move;
}
else
{
e.Effect= DragDropEffects.None;
}
}
else
{
e.Effect= DragDropEffects.None;
}
}
private TreeNode FindNode(int x, int y)
{
Point p = treeView1.PointToClient(new Point(x,y));
TreeNode topNode =treeView1.TopNode;
while(topNode != null)
{
if(topNode.Bounds.Contains(p))
{
return topNode;
}
topNode = topNode.NextVisibleNode;
}
return null;
} private void treeView1_DragOver(object sender, System.Windows.Forms.DragEventArgs e)
{
if(e.Effect == DragDropEffects.Move)
{
TreeNode overNode = FindNode(e.X, e.Y);
if(overNode !=null && !overNode.Equals(oldNode))
{
if(oldNode!=null)
{
oldNode.BackColor = oldNodeBackColor;
oldNode.ForeColor = oldNodeForeColor;
}
oldNode = overNode;
oldNodeBackColor = overNode.BackColor;
oldNodeForeColor = overNode.ForeColor;
TreeNode moveNode = (TreeNode)(e.Data.GetData(typeof(TreeNode)));
if(overNode.Equals(moveNode))
{
overNode.BackColor = Color.Red;
overNode.ForeColor = Color.White;
}
else
{
overNode.BackColor = Color.Green;
overNode.ForeColor = Color.White;
}
}
}
} private void treeView1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
oldNode.BackColor = oldNodeBackColor;
oldNode.ForeColor = oldNodeForeColor;
oldNode = null;
if(e.Effect == DragDropEffects.Move)
{
TreeNode overNode = FindNode(e.X, e.Y);
TreeNode moveNode = (TreeNode)(e.Data.GetData(typeof(TreeNode)));
if(overNode == moveNode)
{
MessageBox.Show(" i con`t move Node", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return ;
}
if(overNode == null)
{
if(moveNode.Parent != null)
{
if(moveNode.Parent.Nodes.Count ==1)
{
moveNode.Parent.ImageIndex = 2;
moveNode.Parent.SelectedImageIndex = 2;
}
moveNode.Remove();
treeView1.Nodes.Add(moveNode);
}
}
else if(overNode.Parent == moveNode.Parent)
{
if(overNode.Nodes.Count !=0)
{
if(moveNode.Parent !=null)
{
if(moveNode.Nodes.Count == 1)
{
moveNode.Parent .ImageIndex = 2;
moveNode.Parent.SelectedImageIndex = 2;
}
}
moveNode.Remove();
overNode.Nodes.Add(moveNode);
overNode.Expand();
overNode.ImageIndex =1;
}
}
else if(overNode.Nodes.Count == 0)
{
if(moveNode.Parent != null)
{
if(moveNode.Parent.Nodes.Count == 1)
{
moveNode.Parent.ImageIndex = 2;
moveNode.Parent.SelectedImageIndex = 2;
}
}
moveNode.Remove();
if(overNode.Parent != null)
{
overNode.Parent.Nodes.Add(moveNode);
}
else
{
treeView1.Nodes.Add(moveNode);
}
}
else if(moveNode.Parent ==null || !moveNode.Parent.Equals(overNode))
{
if(moveNode.Parent != null)
{
if(moveNode.Parent.Nodes.Count == 1)
{
moveNode.Parent.ImageIndex = 2;
moveNode.Parent.SelectedImageIndex = 2;
}
}
moveNode.Remove();
overNode.Nodes.Add(moveNode);
overNode.Expand();
overNode.ImageIndex = 1;
} } } }
}
当然listView中没有什么NODE之类的。
不过大同小异罢了:)treeView和listView都包括itemDrag事件的。
呵呵!希望对你有帮助!!!!!!!!!!!
还有我申明一下我可不是高手。说白了也是只菜鸟罢了:(
还得断续努力学习!!!!!!!!!