2012-07-03 2 views
0

안녕하세요, 내가 드롭하는 위치로 파일을 복사하려면 DataGridview에서 행을 드래그 할 수 있습니다.파일을 DataGridview 밖으로 드래그

행은 단일 선택이고 행의 파일에 대한 전체 원본 경로가있는 파일 경로 열이 있습니다.

DragLeave를 사용하여 파일 경로를 유지하고 마우스를 놓으면 사본을 수행 할 수 있습니까?

수정 자 키를 사용하여 종료되었지만 작동합니다. 컨텍스트 메뉴를 어떻게 프로그래밍했는지에 따라 한 번에 하나의 파일에 대해서만.

if (Control.ModifierKeys == Keys.Shift) 
{ 
     //Drag out 
     string[] selectedFiles = new String[1]; 
     selectedFile[0] = filesGrid[pathColumn.Index,filesGrid.SelectedRows[0].Index].Value.ToString(); 
     DataObject dragData = new DataObject(DataFormats.FileDrop, selectedFiles); 
     dragData.SetData(DataFormats.StringFormat, selectedFiles[0]); 
     DoDragDrop(dragData, DragDropEffects.Copy); 
} 

답변

1

This 당신이 찾고있는 것일 수도 있습니다. 도움이 되었으면 알려주세요.

데스크톱 또는 탐색기에서 드래그 한 경우이 기사를 발견했습니다. here.

+0

한 컨트롤에서 다른 컨트롤로 데이터를 이동하는 방법을 잘 설명하는 것처럼 보이지만, 데이터 상자를 목록 상자로 이동하는 데는 많은 시간이 걸리지 만 드래그를 시작한 후에는 무엇을해야할지 확신이 서지 않습니다. 저자가 제안한대로 Ctrl + 왼쪽 클릭과 같이 할 경우 Desktop에 대한 DragEnter 또는 DragDrop 속성은 없습니다. – ikathegreat

+0

나는 그렇게 확신하지 않는다;) http://social.msdn.microsoft.com/forums/en-US/winforms/thread/60f3ef88-ff7d-4846-b28f-3c97dcef7583/ – phadaphunk

+0

대답으로 표시하겠다. , 질문을 편집하여 코드를 표시합니다. multiselect (컨텍스트 메뉴 제한)를 사용해야하므로 한 번에 하나의 파일 만 삭제할 수 있지만 필자의 경우에는 아무런 이점이 없습니다. 감사. – ikathegreat

관련 문제