日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁(yè)編程開發(fā)C#.NET → C#中實(shí)現(xiàn)文件拖放打開的方法

      C#中實(shí)現(xiàn)文件拖放打開的方法

      相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:本站整理時(shí)間:2010/11/29 0:49:07字體大。A-A+

      作者:佚名點(diǎn)擊:423次評(píng)論:0次標(biāo)簽: 拖放 文件拖放

      • 類型:文件處理大。102KB語言:中文 評(píng)分:5.0
      • 標(biāo)簽:
      立即下載

      private void Form1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
      {
      if (e.Data.GetDataPresent(DataFormats.FileDrop))
      e.Effect = DragDropEffects.Link;
      else e.Effect = DragDropEffects.None;
      }

      private void Form1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
      {
      //其中 label1.Text顯示的就是拖進(jìn)文件的文件名;
      label1.Text = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
      }
      注:窗體的 AllowDrop=True;
      -----------------------------
      必須處理好三種事件:"ItemDrag"、"DragEnter"、"DragDrop"。其中只有第一種事件是在源組件中觸發(fā)的,另外二種事件是在目標(biāo)組
      件中觸發(fā)的。其中當(dāng)用戶拖動(dòng)組件觸發(fā)"ItemDrag"事件;當(dāng)拖動(dòng)數(shù)據(jù)進(jìn)入目標(biāo)組件區(qū)域觸發(fā)"DragEnter"事件;當(dāng)用戶在目標(biāo)組件區(qū)域
      放置拖動(dòng)的數(shù)據(jù)觸發(fā)"DragDrop"事件。下面就根據(jù)拖放操作的操作順序來詳細(xì)介紹:
      (1).開始"拖"(Drag)操作:
      通過"DoDragDrop"方法拉開了拖放操作的第一步。"DoDragDrop"方法的語法為: DoDragDrop ( object data , DragDropEffects
      allowedEffects ) ;

      其中第二個(gè)參數(shù)來是說明此次拖放操作最后所要實(shí)現(xiàn)的效果,因?yàn)橥戏挪僮饔袝r(shí)實(shí)現(xiàn)的效果是把源組件中的內(nèi)容"拖"到目標(biāo)組件中,
      這種效果就是 "Move";有時(shí)拖放的效果是在目標(biāo)組件中加入拖動(dòng)的數(shù)據(jù),對(duì)源組件的內(nèi)容是沒有什么影響的,這種效果就是"Copy"。
      當(dāng)然無論是"Move"還是 "Copy",這都要通過具體的編程來實(shí)現(xiàn),設(shè)定這些效果只是告訴操作系統(tǒng),你進(jìn)行拖放操作的類型,從而為拖
      放操作設(shè)定特定的圖標(biāo)。此例中實(shí)現(xiàn)開始"拖放 "操作的具體實(shí)現(xiàn)代碼如下:
      private void treeView1_ItemDrag ( object sender , ItemDragEventArgs e )
      {
      string strItem = e.Item.ToString ( ) ;
      //開始進(jìn)行"Drag"操作
      DoDragDrop ( strItem , DragDropEffects.Copy | DragDropEffects.Move ) ;
      }

      在上面代碼中,我們定義的拖放數(shù)據(jù)類型是字符串,其實(shí)拖放的數(shù)據(jù)類型可以是很多種的,你可以通過修改"DoDragDrop"方法的第一
      個(gè)參數(shù)來設(shè)定你所要拖放數(shù)據(jù)類型,譬如:位圖或者其他什么。
      (2).目標(biāo)組件允許進(jìn)行拖放操作:
      既然你已經(jīng)開始進(jìn)行拖放操作,你還必須告訴你要拖放到的目標(biāo)組件,要接受你所拖放的數(shù)據(jù),"DragEnter"事件正好可以處理。在下
      列的代碼中,我們是通過判斷拖放數(shù)據(jù)類型來確定是否接受拖放,如果是字符串,則可以,否則,則不行。具體代碼如下:
      private void listView1_DragEnter ( object sender , DragEventArgs e )
      {
      //判斷是否目前拖動(dòng)的數(shù)據(jù)是字符串,如果是,則拖動(dòng)符串對(duì)目的組件進(jìn)行拷貝

      if ( e.Data.GetDataPresent ( DataFormats.Text ) )
      e.Effect = DragDropEffects.Move ;
      else
      e.Effect = DragDropEffects.None ;
      }

      (3).獲得拖放的字符串,在目標(biāo)組件中加入相應(yīng)的內(nèi)容:
      此步的處理過程是十分明確的,要分成二步來進(jìn)行,首先要得到拖放的字符串,其次是在目標(biāo)組件中加入以此字符串為標(biāo)題的項(xiàng)目。
      當(dāng)然還要在相應(yīng)的位置了。下面就是實(shí)現(xiàn)這二步操作的具體代碼:
      private void listView1_DragDrop ( object sender , DragEventArgs e )
      {
      string dummy = "temp" ;
      //獲得進(jìn)行"Drag"操作中拖動(dòng)的字符串
      string s = ( string ) e.Data.GetData ( dummy.GetType ( ) ) ;
      s = s.Substring ( s.IndexOf ( ":" ) + 1 ).Trim ( ) ;
      Position.X = e.X ;
      Position.Y = e.Y ;
      Position = listView1.PointToClient ( Position ) ;
      //在目標(biāo)組件中加入以此字符串為標(biāo)題的項(xiàng)目
      listView1.Items.Add ( new ListViewItem ( s , 0 ) ) ;
      }

      此致通過對(duì)這三個(gè)事件的編程,已經(jīng)完成了由 TreeView組件到ListView 組件的拖放操作。

        相關(guān)評(píng)論

        閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評(píng)論

        最新評(píng)論

        發(fā)表評(píng)論 查看所有評(píng)論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)