C#.net ListView item 拖动排序实现方法
2008-08-07 15:03
746 查看
最近有开发需求涉及的listview 的listviewitem的排序的问题,找了些资料都是断断序序的,把我的实现方法总结一下,
主要实现代码如下:
Code
private ListViewItem itemDraged=null;//定义拖动的item
private ListViewItem itemSelected = null;//定义拖动到位置的item
bool isdrag = false;//是否拖动状态
//ItemMouseHover方法实现鼠标拖动到某个元素上时更改该元素的被选中状态
private void lsvFilms_ItemMouseHover(object sender, ListViewItemMouseHoverEventArgs e)
{
itemSelected = e.Item;
if (isdrag)
{
e.Item.Selected = true;
}
else
{
e.Item.Selected = false;
}
}
//ItemDrag获取被拖动的item
private void lsvFilms_ItemDrag(object sender, ItemDragEventArgs e)
{
itemDraged = (ListViewItem)e.Item;
this.Cursor = Cursors.Hand;
isdrag = true;
}
//MouseUp当拖动放开鼠标时,进行位置调整操作
private void lsvFilms_MouseUp(object sender, MouseEventArgs e)
{
isdrag = false;
if ((itemSelected != null) && (itemDraged != null))
{
if (itemDraged.Index != itemSelected.Index)
{
this.lsvFilms.Items.RemoveAt(itemDraged.Index);
this.lsvFilms.Items.Insert(itemSelected.Index, itemDraged);
itemDraged = null;
itemSelected = null;
}
}
this.Cursor = Cursors.Default;
}
其实就是几个简单的逻辑顺序,如果朋友有更好的方法,希望能与你交流。谢谢!
主要实现代码如下:
Code
private ListViewItem itemDraged=null;//定义拖动的item
private ListViewItem itemSelected = null;//定义拖动到位置的item
bool isdrag = false;//是否拖动状态
//ItemMouseHover方法实现鼠标拖动到某个元素上时更改该元素的被选中状态
private void lsvFilms_ItemMouseHover(object sender, ListViewItemMouseHoverEventArgs e)
{
itemSelected = e.Item;
if (isdrag)
{
e.Item.Selected = true;
}
else
{
e.Item.Selected = false;
}
}
//ItemDrag获取被拖动的item
private void lsvFilms_ItemDrag(object sender, ItemDragEventArgs e)
{
itemDraged = (ListViewItem)e.Item;
this.Cursor = Cursors.Hand;
isdrag = true;
}
//MouseUp当拖动放开鼠标时,进行位置调整操作
private void lsvFilms_MouseUp(object sender, MouseEventArgs e)
{
isdrag = false;
if ((itemSelected != null) && (itemDraged != null))
{
if (itemDraged.Index != itemSelected.Index)
{
this.lsvFilms.Items.RemoveAt(itemDraged.Index);
this.lsvFilms.Items.Insert(itemSelected.Index, itemDraged);
itemDraged = null;
itemSelected = null;
}
}
this.Cursor = Cursors.Default;
}
其实就是几个简单的逻辑顺序,如果朋友有更好的方法,希望能与你交流。谢谢!
相关文章推荐
- C#.net ListView item 拖动排序实现方法
- C#字符串数组排序 C#排序算法大全 C#字符串比较方法 一个.NET通用JSON解析/构建类的实现(c#) C#处理Json文件 asp.net使用Jquery+iframe传值问题
- c# Winform Listview的Details模式时拖动Items排序的实现。
- 多频道网站架构实现方法 (asp.net C#)
- C# ASP.NET B/S模式下,采用lock语法 实现多用户并发产生不重复递增单号的一种解决方法技术参考
- C# 对排序的认识( Comparison ) ,使用匿名方法实现比较器
- C#实现让ListBox适应最大Item宽度的方法
- C# listview如何显示网格线以及如何实现item的选中功能
- ASP.NET(c#)实现重定向的三种方法的总结
- C#中listview实现排序
- C#.NET示例读写xml所有节点的代码实现方法和读取xml节点的数据总结
- .Net Remoting 事件回调 Client 函数方法完整实例: C# 实现控制台网络聊天室 (Console Remoting ChatRoom)
- 用C#实现对数组元素排序(Array.Sort)方法
- 在C#中实现对ListView点击列标题自动排序功能
- asp.net中c#自定义事件的实现方法详解
- C# ListView实现点击列表头实现排序
- ASP.NET(c#)实现重定向的三种方法的总结
- .NET/C#实现识别用户访问设备的方法
- ASP.Net MVC+Data Table实现分页+排序功能的方法
- Android实现带有边框的ListView和item的方法