프로그램/C# 2013. 3. 8. 01:50

C# 끌어놓기 드래그 앤 드롭 (수정 필요)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#region 드래그앤 드롭
       
        bool QueryContununeDragCanel;
       
        private void 새로열기ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (새로열기ToolStripMenuItem.Checked == true)
                추가하기ToolStripMenuItem.Checked = false;
            else
                새로열기ToolStripMenuItem.Checked = true;
        }
 
        private void 추가하기ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (추가하기ToolStripMenuItem.Checked == true)
                새로열기ToolStripMenuItem.Checked = false;
            else
                추가하기ToolStripMenuItem.Checked = true;
        }
 
        private void richTextBox1_QueryContununeDrag(object sender, QueryContinueDragEventArgs e)
        {
            if(QueryContununeDragCanel == true)
            e.Action = DragAction.Cancel;
        }
 
        private void richTextBox1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effect = DragDropEffects.Copy | DragDropEffects.Scroll;
            }
        }
 
        private void richTextBox1_DragDrop(object sender, DragEventArgs e)
        {
             
           
            if (새로열기ToolStripMenuItem.Checked == true | TextChangeCheck == true)//새로열기체크와  텍스트가 변경 되었으면
            {       
                DialogResult result = MessageBox.Show(this.Text + " 파일의 내용이 변경되었습니다." + Environment.NewLine + Environment.NewLine + "변경된 내용을 저장하시겠습니까?", "QA4B", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);
                switch (result)//메세지박스의 result값을 받아와서 비교합니다.
                {             
                    case DialogResult.Yes://메세지 박스에서 예를 누르면...
                            FileSave();
 
                            if (e.Data.GetDataPresent(DataFormats.FileDrop))
                            {
                                string[] file = (string[])e.Data.GetData(DataFormats.FileDrop);
                                foreach (string str in file)
                                {
 
                                    richTextBox1.Text = File.ReadAllText(str, Encoding.Default);
                                    fname = str;
                                    TextChangeCheck = false;
                                    //제목 표시
                                    int titlename = str.LastIndexOf("\\");
                                    this.Text = str.Substring(titlename + 1);
                                }
                            }
                            break;
 
                        case DialogResult.No://메세지 박스에서 아니오를 누르면...                         
                            if (e.Data.GetDataPresent(DataFormats.FileDrop))
                            {
                                string[] file = (string[])e.Data.GetData(DataFormats.FileDrop);
                                foreach (string str in file)
                                {
 
                                    richTextBox1.Text = File.ReadAllText(str, Encoding.Default);
                                    fname = str;
                                    TextChangeCheck = false;
                                    //제목 표시
                                    int titlename = str.LastIndexOf("\\");
                                    this.Text = str.Substring(titlename + 1);
 
                                }
                            }
                             
                            break;
 
                        case DialogResult.Cancel://메세지 박스에서 아니오를 누르면...
                            QueryContununeDragCanel = true;//그래그 앤 드롭 이벤트 취소
                            break;
                    }
                }
           
 
        }
        #endregion

'프로그램 > C#' 카테고리의 다른 글

C# 줄바꿈 캐리지리턴과 라인피드 정리  (0) 2013.03.08
C# 텍스트 배열에 나눠 넣기  (0) 2013.03.08
C# 외부 프로그램 실행  (0) 2013.03.08
C# 폼 상속  (0) 2013.03.08
C# 난수 생성 , rand Random  (0) 2013.03.08