在2个listview之间进行Drap和Drop [英] Drap and Drop between 2 listview
问题描述
我有
private void lvSource_DragEnter(object sender,DragEventArgs e)
{
e。 Effect = DragDropEffects.Move;
}
private void lvSource_ItemDrag(object sender,ItemDragEventArgs e)< br $>
{
lvSource.DoDragDrop(lvSource.SelectedItems,DragDropEffects.Move);
}
private void lvSource_DragDrop(object sender,DragEventArgs e)
{
if(lvSource.SelectedItems.Count == 0){return; } $ / $
Point Pt = lvSource.PointToClient(new Point(eX,eY));
ListViewItem ItemDrag = lvSource.GetItemAt(Pt。 X,Pt.Y);
if(ItemDrag == null){return; }
int ItemDragIndex = ItemDrag.Index;
ListViewItem [] sel = new ListViewItem [lvSource.SelectedItems.Count];
for(int i = 0; i< lvSource.SelectedItems.Count; i ++)
{
sel [ i] = lvSource.SelectedItems [i];
}
for(int i = 0; i< sel.GetLength(0 ); i ++)
{
ListViewItem Item = sel [i];
int ItemIndex = ItemDragIndex;
if(ItemIndex == Item.Index){return; }
if(Item.Index< ItemIndex)
{
ItemIndex ++;
}
其他
{
ItemIndex = ItemDragIndex + 1;
}
ListViewItem InsertItem =(ListViewItem)Item.Clone();
lvSource.Items.Insert(ItemIndex,InsertItem);
lvSource.Items.Remove(Item);
}
}
private void lvDestination_DragEnter(object sender,DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
private void lvDestination_DragDrop(object sender,DragEventArgs e)
{
if(lvDestination.SelectedItems.Count == 0){return; } $ / $
Point Pt = lvDestination.PointToClient(new Point(eX,eY));
ListViewItem ItemDrag = lvDestination.GetItemAt(Pt。 X,Pt.Y);
if(ItemDrag == null){return; }
int ItemDragIndex = ItemDrag.Index;
ListViewItem [] sel = new ListViewItem [lvDestination.SelectedItems.Count];
for(int i = 0; i< lvDestination.SelectedItems.Count; i ++)
{
sel [ i] = lvDestination.SelectedItems [i];
}
for(int i = 0; i< sel.GetLength(0 ); i ++)
{
ListViewItem Item = sel [i];
int ItemIndex = ItemDragIndex;
if(ItemIndex == Item.Index){return; }
if(Item.Index< ItemIndex)
{
ItemIndex ++;
}
其他
{
ItemIndex = ItemDragIndex + 1;
}
ListViewItem InsertItem =(ListViewItem)Item.Clone();
lvDestination.Items.Insert(ItemIndex,InsertItem);
lvDestination.Items.Remove(Item);
}
}
private void lvDestination_ItemDrag(object sender, ItemDragEventArgs e)
{
lvDestination.DoDragDrop(lvDestination.SelectedItems,DragDropEffects.Move);
}
private void SourceDestination_DrapDrop(object sender,DragEventArgs e)
{
// .. ...代码在这里
}
我想在两个listview之间拖放项目。谁可以帮助我?
在粘贴代码之前咨询一些教程(没有格式化)怎么样?
看看这里:列表框之间的拖放 - 初学者教程 [ ^ ]
I have
private void lvSource_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
private void lvSource_ItemDrag(object sender, ItemDragEventArgs e)
{
lvSource.DoDragDrop(lvSource.SelectedItems, DragDropEffects.Move);
}
private void lvSource_DragDrop(object sender, DragEventArgs e)
{
if(lvSource.SelectedItems.Count == 0) { return; }
Point Pt = lvSource.PointToClient(new Point(e.X, e.Y));
ListViewItem ItemDrag = lvSource.GetItemAt(Pt.X, Pt.Y);
if(ItemDrag==null) { return; }
int ItemDragIndex = ItemDrag.Index;
ListViewItem[] sel = new ListViewItem[lvSource.SelectedItems.Count];
for (int i = 0; i < lvSource.SelectedItems.Count; i++)
{
sel[i] = lvSource.SelectedItems[i];
}
for (int i = 0; i < sel.GetLength(0); i++)
{
ListViewItem Item = sel[i];
int ItemIndex = ItemDragIndex;
if(ItemIndex == Item.Index) { return; }
if(Item.Index < ItemIndex)
{
ItemIndex++;
}
else
{
ItemIndex = ItemDragIndex + 1;
}
ListViewItem InsertItem = (ListViewItem)Item.Clone();
lvSource.Items.Insert(ItemIndex, InsertItem);
lvSource.Items.Remove(Item);
}
}
private void lvDestination_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
private void lvDestination_DragDrop(object sender, DragEventArgs e)
{
if (lvDestination.SelectedItems.Count == 0) { return; }
Point Pt = lvDestination.PointToClient(new Point(e.X, e.Y));
ListViewItem ItemDrag = lvDestination.GetItemAt(Pt.X, Pt.Y);
if (ItemDrag == null) { return; }
int ItemDragIndex = ItemDrag.Index;
ListViewItem[] sel = new ListViewItem[lvDestination.SelectedItems.Count];
for (int i = 0; i < lvDestination.SelectedItems.Count; i++)
{
sel[i] = lvDestination.SelectedItems[i];
}
for (int i = 0; i < sel.GetLength(0); i++)
{
ListViewItem Item = sel[i];
int ItemIndex = ItemDragIndex;
if (ItemIndex == Item.Index) { return; }
if (Item.Index < ItemIndex)
{
ItemIndex++;
}
else
{
ItemIndex = ItemDragIndex + 1;
}
ListViewItem InsertItem = (ListViewItem)Item.Clone();
lvDestination.Items.Insert(ItemIndex, InsertItem);
lvDestination.Items.Remove(Item);
}
}
private void lvDestination_ItemDrag(object sender, ItemDragEventArgs e)
{
lvDestination.DoDragDrop(lvDestination.SelectedItems, DragDropEffects.Move);
}
private void SourceDestination_DrapDrop(object sender, DragEventArgs e)
{
//..... Code Here
}
I want to drag and drop items between two listview. Who can help me?
What about consulting some tutorial before pasting code (without formatting)?
Have a look here: Drag and Drop between list boxes - Beginner's Tutorial[^]
这篇关于在2个listview之间进行Drap和Drop的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!