2013年5月30日 星期四

[C#]DragDrop筆記

  在視窗上先將要丟入的區域LABEL的屬性AllowDrop設為True




  利用DragEnter事件可以直接觸發拖入事件

 private void txtContent_DragEnter(object sender, DragEventArgs e)
        {
            string[] l_strPaths = (string[])e.Data.GetData(DataFormats.FileDrop);
            openFile(l_strPaths[0]);
        } 


        private void openFile(string p_strPath)
        {
            StreamReader l_reader = new StreamReader(p_strPath, Encoding.Default);
            txtContent.Text = l_reader.ReadToEnd();
            l_reader.Close();
        }


  但是這樣無法做到合理的開啟檔案效果,必須要透過DragDrop事件來處理,但是DragDrop事件無法直接被觸發,必須要在DragEnter的事件裡面去觸發DragDrop的效果


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

  然後在DragDrop事件裡面寫入要執行的動作


  private void txtContent_DragDrop_1(object sender, DragEventArgs e)
        {
            string[] l_strPaths = (string[])e.Data.GetData(DataFormats.FileDrop);
            txtPath.Text = l_strPaths[0];
            openFile(l_strPaths[0]);
        }

沒有留言:

張貼留言