Blog Content

    티스토리 뷰

    26.C#_WinForm - 드래그 앤 드롭 ( Drag And Drop )

    반응형

    메모장 안에 택스트 파일을 드래그앤 드롭 시 택스트 파일이 자동으로 열리는
    예제 입니다.


    FrmMain - 샘플 - 간단한메모장

    FrmSampleNotepad 속성을 지정 하도록 합니다.

    txtNote 컨트롤 : 속성 - AllowDrop = True로 설정합니다.
         컨트롤에 데이터를 끌어 놓을 수 있는지의 여부에 대해서 설정

    txtNote 컨트롤 이벤트 속성 지정
    [그림26-1]
    이벤트 핸들러를 추가합니다.

    txtNote_DragDrop 부분 코드 작성
    private void txtNote_DragDrop(object sender, DragEventArgs e)
    {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                    if (e.Data.GetDataPresent(DataFormats.FileDrop))
                    {
                        string[] strFiles = (string[])e.Data.GetData(
                                                            DataFormats.FileDrop);
                        StreamReader objSr = new StreamReader(
                                            strFiles[0], Encoding.Default);
                        this.txtNote.Clear();
                        this.txtNote.Text = objSr.ReadToEnd();
                        objSr.Close();
                    }
            }
    }

    txtNote_DragOver 부분 코드 작성
    private void txtNote_DragOver(object sender, DragEventArgs e)
    {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                    e.Effect = DragDropEffects.Copy;
            }
    }

    txtNote_QueryContinueDrag 부분 코드 작성
    private void txtNote_QueryContinueDrag(object sender,
            QueryContinueDragEventArgs e)
    {
            if (e.EscapePressed)
            {
                    e.Action = DragAction.Cancel;
            }
    }

    결과화면

    텍스트 파일을 간단한 메모장 텍스트박스 안으로 '드래그 앤 드롭'을 합니다.

    [그림26-2]

    [그림26-3]


    26WinFrmMain.zip
    다운로드



    반응형

    Comments