목록보기의 AllowDrop 속성을 true로 설정하여 시작하십시오. 드래그 시작을 감지하기 위해 ItemDrag 이벤트를 구현합니다.
bool privateDrag;
private void listView1_ItemDrag(object sender, ItemDragEventArgs e) {
privateDrag = true;
DoDragDrop(e.Item, DragDropEffects.Copy);
privateDrag = false;
}
다음으로는 DragEnter 이벤트가 필요합니다, 즉시 실행됩니다 : 그게 D + D에만 컨트롤의 내부 작동하는지 확인하기 위해 개인 변수를 사용합니다
private void listView1_DragEnter(object sender, DragEventArgs e) {
if (privateDrag) e.Effect = e.AllowedEffect;
}
다음으로 사용자가 드롭 할 수있는 항목을 선택해야합니다. DragOver 이벤트가 필요하며 어느 항목을 마우스로 가리키고 있는지 확인해야합니다. 폴더를 나타내는 항목과 일반 '파일'항목을 구별해야합니다. 이렇게 할 수있는 한 가지 방법은 ListViewItem.Tag 속성을 사용하는 것입니다. 예를 들어 폴더의 경로로 설정할 수 있습니다. 여러 항목을 다음 드래그가 ListView.SelectedIndices 속성을 개체를 만드는 드래그 지원하려면
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);
}
}
:이 코드 작업을 만들기.
Windows의 끌어서 놓기 작업은 DragEnter, DragLeave 및 DragDrop의 3 가지 간단한 이벤트를 사용하여 수행 할 수 있습니다. 정확한 정보는 ** ** [Link] (http://www.c-sharpcorner.com/UploadFile/skulkarni/ImlementingDragandDropinListViewControls11252005035642AM/ImlementingDragandDropinListViewContConts.aspx) **를 참조하십시오 .... –