まず、リストビューのAllowDropプロパティをtrueに設定します。ドラッグの開始を検出するためにItemDragイベントを実装します。私はD + Dのみ、コントロールの内部で動作することを確認するためにプライベート変数を使用します:
bool privateDrag;
private void listView1_ItemDrag(object sender, ItemDragEventArgs e) {
privateDrag = true;
DoDragDrop(e.Item, DragDropEffects.Copy);
privateDrag = false;
}
次のあなたはそれがすぐに起動します、DragEnterイベントをする必要があります:
private void listView1_DragEnter(object sender, DragEventArgs e) {
if (privateDrag) e.Effect = e.AllowedEffect;
}
次のあなたユーザーがドロップできるアイテムを選択したいと思うでしょう。そのためには、DragOverイベントが必要で、どのアイテムがホバリングされているかを確認する必要があります。通常の「ファイル」アイテムとフォルダを表すアイテムを区別する必要があります。 ListViewItem.Tagプロパティを使用して、これを行うことができます。たとえば、フォルダのパスに設定することができます。このコードの動作を作る:
private void listView1_DragOver(object sender, DragEventArgs e) {
var pos = listView1.PointToClient(new Point(e.X, e.Y));
var hit = listView1.HitTest(pos);
if (hit.Item != null && hit.Item.Tag != null) {
var dragItem = (ListViewItem)e.Data.GetData(typeof(ListViewItem));
copy(dragItem, (string)hit.Item.Tag);
}
}
あなたが複数のアイテムをドラッグサポートしたい場合は、あなたのドラッグがListView.SelectedIndicesプロパティをオブジェクト作ります。
Windowsのドラッグアンドドロップ操作は、DragEnter、DragLeave、およびDragDropの3つの単純なイベントを使用して実行できます。正確な情報については、** ** [Link](http://www.c-sharpcorner.com/UploadFile/skulkarni/ImlementingDragandDropinListViewControls11252005035642AM/ImlementingDragandDropinListViewContConts.aspx)**を参照してください.... –