2024年5月11日发(作者:)

winFormListView控件内部拖动排序

private void listView1_ItemDrag(object sender, ItemDragEventArgs e)

{

Drop(edItems, );

}

private void listView1_DragDrop(object sender, DragEventArgs e)

{

//判断是否选择拖放的项,

if ( == 0)

{

return;

}

//定义项的坐标点

Point cp = oClient(new Point(e.X, e.Y));//

ListViewItem dragToItem = mAt(cp.X, cp.Y);

if (dragToItem == null)

{

return;

}

int dragIndex = ;

ListViewItem[] sel = new ListViewItem[];

for (int i = 0; i <= - 1; i++)

{

sel = edItems;

}

for (int i = 0; i < gth(0); i++)

{

ListViewItem dragItem = sel;

int itemIndex = dragIndex;

if (itemIndex == )

{

return;

}

if ( < itemIndex)

itemIndex++;

else

itemIndex = dragIndex + i;

ListViewItem insertItem = (ListViewItem)();

(itemIndex, insertItem);

(dragItem);

}

}

private void listView1_DragEnter(object sender, DragEventArgs e)

{

for (int i = 0; i <= mats().Length - 1; i++)

{

if (mats().Equals("ew+SelectedListViewItemCollection"))

{

= ;

}

}

}