C#中拖放功能的实现

时间:2021-05-02

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; } }

将整个窗体代码都复制下来,是一个复制的小程序,将拖放到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://),转载请保留此信息!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章