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

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


#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