很久没写教程了,停顿了有两年之久了。今天我们来讨论讨论 winform 中TreeView与ListView,通观两者很相似,只是一个是树形结构,一个是列表结构。
今天自己创建的群里(2175832)有个朋友问到ListView的项如何拖动到TreeView中,并生成子节点,签于麻烦,我回答比较麻烦,用BUTTON实现吧,但他觉得拖动比较方便,那当然哦!无奈帮人帮到底,送佛送到西,于是立即创建本地WINFORM 测试项目,给了点代码给他(其实他本身已经完成了一半代码量了,只是在ListView拖动项到控区域外遇到了不解之疑)
好了,废话不多说了,直接转正题吧。今天我帖了代码是两个功能的结合:
1、ListView项拖动到TreeView
2、TreeView节点项拖动到ListView中
(效果图)

主要代码实现如下:
#region
将LISTVIEW项拖动TREEVIEW中
/// <summary>
/// 对选中项指定Move的“开始拖动操作”
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void listView1_ItemDrag( object sender, System.Windows.Forms.ItemDragEventArgs e)
{
this .DoDragDrop(e.Item,DragDropEffects.Move);
}
private void listView1_DragEnter( object sender, System.Windows.Forms.DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
private void treeView1_DragEnter( object sender, System.Windows.Forms.DragEventArgs e)
{
// 判定是否现在拖动的数据是LISTVIEW项
ListViewItem lvi = (ListViewItem)e.Data.GetData( typeof (ListViewItem));
if (lvi != null )
{
e.Effect = DragDropEffects.Move;
}
else
Cursor = Cursors.No;
}
private void treeView1_DragDrop( object sender, System.Windows.Forms.DragEventArgs e)
&n
/// <summary>
/// 对选中项指定Move的“开始拖动操作”
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void listView1_ItemDrag( object sender, System.Windows.Forms.ItemDragEventArgs e)
{
this .DoDragDrop(e.Item,DragDropEffects.Move);
}
private void listView1_DragEnter( object sender, System.Windows.Forms.DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
private void treeView1_DragEnter( object sender, System.Windows.Forms.DragEventArgs e)
{
// 判定是否现在拖动的数据是LISTVIEW项
ListViewItem lvi = (ListViewItem)e.Data.GetData( typeof (ListViewItem));
if (lvi != null )
{
e.Effect = DragDropEffects.Move;
}
else
Cursor = Cursors.No;
}
private void treeView1_DragDrop( object sender, System.Windows.Forms.DragEventArgs e)
&n

本文介绍了如何在C# Winform应用中实现TreeView与ListView之间的拖放操作,包括将ListView项拖放到TreeView生成子节点,以及反向操作。作者通过实例代码展示了这两个功能的实现,旨在解决群友在实现拖放过程中遇到的问题。
最低0.47元/天 解锁文章
1273

被折叠的 条评论
为什么被折叠?



