开发环境是2.0 VS2008 WIN7
实现ListView的拖拽功能
private void listView2_DragOver(object sender, DragEventArgs e)
{
Point targetPoint = listView2.PointToClient(new Point(e.X, e.Y));
int targetIndex = listView2.InsertionMark.NearestIndex(targetPoint); if (targetIndex > -1)
{
Rectangle itemBounds = listView2.GetItemRect(targetIndex);
if (targetPoint.X > itemBounds.Left + (itemBounds.Width / 2))
{
listView2.InsertionMark.AppearsAfterItem = true;
}
else
{
listView2.InsertionMark.AppearsAfterItem = false;
}
}
listView2.InsertionMark.Index = targetIndex;
} private void listView2_DragLeave(object sender, EventArgs e)
{
listView2.InsertionMark.Index = -1;
}
private void listView1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
} private void listView1_ItemDrag(object sender, ItemDragEventArgs e)
{
ListViewItem[] items = new ListViewItem[listView1.SelectedItems.Count];
int i = 0; foreach (ListViewItem item in ((ListView)(sender)).SelectedItems)
{
items[i] = item.Clone() as ListViewItem;
i++;
} listView1.DoDragDrop(new DataObject("System.Windows.Forms.ListViewItem()", items), DragDropEffects.Copy); }
开发下没问题 拿到XP下运行这个功能就没了
何解?
实现ListView的拖拽功能
private void listView2_DragOver(object sender, DragEventArgs e)
{
Point targetPoint = listView2.PointToClient(new Point(e.X, e.Y));
int targetIndex = listView2.InsertionMark.NearestIndex(targetPoint); if (targetIndex > -1)
{
Rectangle itemBounds = listView2.GetItemRect(targetIndex);
if (targetPoint.X > itemBounds.Left + (itemBounds.Width / 2))
{
listView2.InsertionMark.AppearsAfterItem = true;
}
else
{
listView2.InsertionMark.AppearsAfterItem = false;
}
}
listView2.InsertionMark.Index = targetIndex;
} private void listView2_DragLeave(object sender, EventArgs e)
{
listView2.InsertionMark.Index = -1;
}
private void listView1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
} private void listView1_ItemDrag(object sender, ItemDragEventArgs e)
{
ListViewItem[] items = new ListViewItem[listView1.SelectedItems.Count];
int i = 0; foreach (ListViewItem item in ((ListView)(sender)).SelectedItems)
{
items[i] = item.Clone() as ListViewItem;
i++;
} listView1.DoDragDrop(new DataObject("System.Windows.Forms.ListViewItem()", items), DragDropEffects.Copy); }
开发下没问题 拿到XP下运行这个功能就没了
何解?
哪位仁兄 有相关的替换代码