ListView 拖拽实例
来源:互联网 发布:centos6.5搭建php环境 编辑:程序博客网 时间:2024/06/11 08:27
ListView 拖拽实例
实例内容:
ListView之间单项数据拖拽;
ListView之间多项数据拖拽;
ListView之间多项数据双向拖拽;
ListView内部位置移动;
ListView内部值的交换。
部分代码:
#region ListView之间单项数据拖拽
private void listView4_ItemDrag(object sender, ItemDragEventArgs e)
{
listView4.DoDragDrop(e.Item, DragDropEffects.Move);
}
private void listView5_DragEnter(object sender, DragEventArgs e)
{
e.Effect = e.AllowedEffect;
}
private void listView5_DragDrop(object sender, DragEventArgs e)
{
ListViewItem draggedItem = (ListViewItem)e.Data.GetData(typeof(ListViewItem));
listView5.Items.Insert(0,(ListViewItem)draggedItem.Clone());
}
#endregion
private void listView4_ItemDrag(object sender, ItemDragEventArgs e)
{
listView4.DoDragDrop(e.Item, DragDropEffects.Move);
}
private void listView5_DragEnter(object sender, DragEventArgs e)
{
e.Effect = e.AllowedEffect;
}
private void listView5_DragDrop(object sender, DragEventArgs e)
{
ListViewItem draggedItem = (ListViewItem)e.Data.GetData(typeof(ListViewItem));
listView5.Items.Insert(0,(ListViewItem)draggedItem.Clone());
}
#endregion
#region ListView之间多项数据拖拽
private void listView2_ItemDrag(object sender, ItemDragEventArgs e)
{
ListViewItem[] items = new ListViewItem[((ListView)(sender)).SelectedItems.Count];
int i = 0;
foreach (ListViewItem item in ((ListView)(sender)).SelectedItems)
{
items[i] = item;
i++;
}
((ListView)(sender)).DoDragDrop(new DataObject("System.Windows.Forms.ListViewItem()", items), DragDropEffects.Copy);
}
private void listView3_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent("System.Windows.Forms.ListViewItem()"))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void listView3_DragDrop(object sender, DragEventArgs e)
{
ListViewItem[] items = (ListViewItem[])(e.Data.GetData("System.Windows.Forms.ListViewItem()"));
int i = 0;
foreach (ListViewItem item in items)
{
ListViewItem listItem = new ListViewItem(items[i].Text,item.ImageIndex);
listItem.SubItems.Add(items[i].SubItems[1].Text);
listItem.SubItems.Add(items[i].SubItems[2].Text);
((ListView)(sender)).Items.Add(listItem);
try
{
if (sender == listView3)
{
listView2.Items.Remove(listView2.SelectedItems[0]);
}
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
i++;
}
}
#endregion
private void listView2_ItemDrag(object sender, ItemDragEventArgs e)
{
ListViewItem[] items = new ListViewItem[((ListView)(sender)).SelectedItems.Count];
int i = 0;
foreach (ListViewItem item in ((ListView)(sender)).SelectedItems)
{
items[i] = item;
i++;
}
((ListView)(sender)).DoDragDrop(new DataObject("System.Windows.Forms.ListViewItem()", items), DragDropEffects.Copy);
}
private void listView3_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent("System.Windows.Forms.ListViewItem()"))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void listView3_DragDrop(object sender, DragEventArgs e)
{
ListViewItem[] items = (ListViewItem[])(e.Data.GetData("System.Windows.Forms.ListViewItem()"));
int i = 0;
foreach (ListViewItem item in items)
{
ListViewItem listItem = new ListViewItem(items[i].Text,item.ImageIndex);
listItem.SubItems.Add(items[i].SubItems[1].Text);
listItem.SubItems.Add(items[i].SubItems[2].Text);
((ListView)(sender)).Items.Add(listItem);
try
{
if (sender == listView3)
{
listView2.Items.Remove(listView2.SelectedItems[0]);
}
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
i++;
}
}
#endregion
#region ListView内部位置移动
private void listView1_ItemDrag(object sender, ItemDragEventArgs e)
{
listView1.DoDragDrop(e.Item, DragDropEffects.Move);
}
private void listView1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = e.AllowedEffect;
}
private void listView1_DragOver(object sender, DragEventArgs e)
{
Point targetPoint = listView1.PointToClient(new Point(e.X, e.Y));
int targetIndex = listView1.InsertionMark.NearestIndex(targetPoint);
if (targetIndex>-1)
{
Rectangle itemBounds = listView1.GetItemRect(targetIndex);
if (targetPoint.X>itemBounds.Left+(itemBounds.Width/2))
{
listView1.InsertionMark.AppearsAfterItem = true;
}
else
{
listView1.InsertionMark.AppearsAfterItem = false;
}
}
listView1.InsertionMark.Index = targetIndex;
}
private void listView1_DragLeave(object sender, EventArgs e)
{
listView1.InsertionMark.Index = -1;
}
private void listView1_DragDrop(object sender, DragEventArgs e)
{
int targetIndex = listView1.InsertionMark.Index;
if (targetIndex==-1)
{
return;
}
if (listView1.InsertionMark.AppearsAfterItem)
{
targetIndex++;
}
ListViewItem draggedItme = (ListViewItem)e.Data.GetData(typeof(ListViewItem));
listView1.Items.Insert(targetIndex,(ListViewItem)draggedItme.Clone());
listView1.Items.Remove(draggedItme);
}
private class ListViewIndexComparer : System.Collections.IComparer
{
public int Compare(object x, object y)
{
return ((ListViewItem)x).Index - ((ListViewItem)y).Index;
}
}
#endregion
。。。。。。private void listView1_ItemDrag(object sender, ItemDragEventArgs e)
{
listView1.DoDragDrop(e.Item, DragDropEffects.Move);
}
private void listView1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = e.AllowedEffect;
}
private void listView1_DragOver(object sender, DragEventArgs e)
{
Point targetPoint = listView1.PointToClient(new Point(e.X, e.Y));
int targetIndex = listView1.InsertionMark.NearestIndex(targetPoint);
if (targetIndex>-1)
{
Rectangle itemBounds = listView1.GetItemRect(targetIndex);
if (targetPoint.X>itemBounds.Left+(itemBounds.Width/2))
{
listView1.InsertionMark.AppearsAfterItem = true;
}
else
{
listView1.InsertionMark.AppearsAfterItem = false;
}
}
listView1.InsertionMark.Index = targetIndex;
}
private void listView1_DragLeave(object sender, EventArgs e)
{
listView1.InsertionMark.Index = -1;
}
private void listView1_DragDrop(object sender, DragEventArgs e)
{
int targetIndex = listView1.InsertionMark.Index;
if (targetIndex==-1)
{
return;
}
if (listView1.InsertionMark.AppearsAfterItem)
{
targetIndex++;
}
ListViewItem draggedItme = (ListViewItem)e.Data.GetData(typeof(ListViewItem));
listView1.Items.Insert(targetIndex,(ListViewItem)draggedItme.Clone());
listView1.Items.Remove(draggedItme);
}
private class ListViewIndexComparer : System.Collections.IComparer
{
public int Compare(object x, object y)
{
return ((ListViewItem)x).Index - ((ListViewItem)y).Index;
}
}
#endregion
下载:http://files.cnblogs.com/EasyData/ListViewDragTest.rar
- ListView 拖拽实例
- ListView实例
- ListView实例
- ListView使用实例
- ListView介绍与实例
- ListView分析以及实例
- 扩展的ListView实例
- listView动态加载实例
- ListView实例学习一
- ListView学习实例二
- ListView优化实例
- 精美ListView实例
- jquery mobile listview实例
- Android ListView实例
- ListView setListAdapter学习实例
- jquery mobile listview实例
- ListView 使用实例
- ListView结合BaseAdapter实例
- 预处理: # 和 ## 和 __VA_ARGS__
- 配置SVN用户权限
- DB2连接服务器的配置
- jboss数据源的配置
- CBOT年夜豆期货收跌 市场静待农业部讲演
- ListView 拖拽实例
- 技术是根本,时运是催化剂,而审时度势则是变压器,可以放大技术中所蕴含的能量
- POJ 2524 并查集水题
- 推荐一本书:《人生十论》 钱穆 著
- linux中断实例
- postgresql 创建表,创建存储过程 创建触发器 创建触发器函数
- Windows上Python读取stdin出错
- dstream_sdk生成
- JavaScript中的document.cookie的使用