퇴근5분전

플러그인 메인을 만들면서 플러그인 아이템(dll)파일을 등록하기위해

OpenFileDialog를 사용하여 로딩하기도 했지만.

파일 드래그앤 드랍기능도 추가하였다.

방법은 간단하지만... 기록해둔다..



해당 폼에 AllowDrop = true를 설정하고
두개의 이벤트를 지정한다.

        private void Form1_DragDrop(object sender, DragEventArgs e)
        {
            this.Text = Path.GetFullPath( ((string[])(e.Data.GetData(e.Data.GetFormats()[7])))[0].ToString());
        }

        private void Form1_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Link;
        }

꼴랑 이게 끝이다.

주의 할것은.
((string[])(e.Data.GetData(e.Data.GetFormats()[7])))[0].ToString()

이구분에 인덱스 처리부분이다.


위 이미지는 GetData에 넣어주는 Format 값에 대한것이다.
 현재는 [7] 이라고 넣어주었지만 FileName 이라 넣어주는것이 좋을듯 하다.
노트북(Win7)은 8가지가 나오지만 데크탑(XP)은 7개만 나온다.

직접 FileName을 넣는것이 나을듯 하다.

파일명을 얻어왔으니 이제 파일을 컨트롤하면 된다.

플러그인 모듈을 가지고 직접 Dll을 특정폴더로 이동시키고 xml목록에 업데이트 하는 동작구현시 아주 잘된다.
여기에 가미된것은 Path객체로 FullPath를 얻어오는부분일 뿐..

모듈을 만들때 그냥 썼더니 긴 경로명은 ~ 처리가 된다. 물론 파일 경로에 접근하는데는 무리가 없으나

파일을 이동시켰을때 ~로 바뀌어버리므로 의도적으로 바꾸는게 아니라면 주의 해야겠다.