首 页IT知识库收藏内容
当前位置:翔宇亭IT乐园IT知识库C#高级应用

C#中拖放功能的实现

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2010-04-29 18:04:00

C#中的拖放功能使我们在做一些时变得非常方便,下面就以一个实例讲解了具体的拖放操作的实现方法。

下面的代码没有给出注释,加入了一个ListBox,当文件拖放上来后,将内容显示在里面。

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

             private void lstFilePath_DragDrop(object sender, DragEventArgs e)
             {
                 foreach (string strPath in (string[])e.Data.GetData(DataFormats.FileDrop))
                 {
                     lstFilePath.Items.Add(strPath);
                 }
             }

将整个窗体代码都复制下来,是一个复制的小程序,将拖放到LISTBOX里的文件复制到文本框里指定的位置,里面用到了一个外部控件,可以使用普通的button替换之。

     using System;
     using System.Collections.Generic;
     using System.ComponentModel;
     using System.Data;
     using System.Drawing;
     using System.Text;
     using System.Windows.Forms;
     using System.IO;
     using System.Diagnostics;

     namespace PersonalDisk
     {
         public partial class frmDrag : Form
         {
             ///
             /// 获得/设置一个值,判断是否已经存在了一个类的实例
             ///
             public static bool IsExist=false;

             public frmDrag()
             {
                 InitializeComponent();
                 frmDrag.IsExist = true;
             }

             private void frmDrag_MouseDown(object sender, MouseEventArgs e)
             {
                 //如果鼠标指针在标题栏范围内并且按下了鼠标左键,则触发移动标题栏方法
                 if (e.Button == MouseButtons.Left  e.Y
             /// 复制一个目录下的所有文件或目录到一个新的目录下
             ///
             ///    源目录路径
             /// 目标目录路径

             private void CopyDirectory(string sourcePath, string destPath)
             {
                 try
                 {
                     //如果目标路径没有以\结尾则加之
                     if (destPath[destPath.Length - 1] != Path.DirectorySeparatorChar)
                     {
                         destPath += Path.DirectorySeparatorChar;
                     }
                     if (!Directory.Exists(destPath))
                     {
                         Directory.CreateDirectory(destPath);
                     }
                     string[] fileList = Directory.GetFileSystemEntries(sourcePath);
                     foreach (string file in fileList)
                     {
                         //如果是一个目录则
                         if (Directory.Exists(file))
                         {
                             CopyDirectory(file, destPath + Path.GetFileName(file));
                         }
                         else
                         {
                             File.Copy(file, destPath + Path.GetFileName(file),true);
                         }
                     }
                 }
                 catch(IOException ioe)
                 {
                     MessageBox.Show(ioe.Message, "复制文件时出错", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                 }
             }
         }
     }


本文源自:翔宇亭——IT乐园(http://www.biye5u.com),转载请保留此信息!

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

Tags:

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:

相关文章

    关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
    本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
    Copyright © 2007-2024 biye5u.com. All Rights Reserved.