让您的WinForm控件快速支持拖拽文件

本文介绍了一种使用C#扩展方法实现控件文件拖拽功能的方法,通过简单的代码即可为任意控件添加文件拖放支持,适用于.NET平台。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现原理:使用扩展方法。

复制代码
///
/// 控件扩展
///
public static class ControlExt
{
///
/// 文件拖拽支持
///
///
/// 拖拽的文件路径列表
public static void ControlUseDrop(this Control control,Action<List> FileNamesCallBack)
{
control.AllowDrop = true;//设置控件运行拖放
control.DragEnter += Control_DragEnter;
control.DragDrop += (sender,e)=> {
Array array = e.Data.GetData(DataFormats.FileDrop) as Array;
List fileNames = new List();
foreach (Object item in array)
{
fileNames.Add(item.ToString());
}
FileNamesCallBack?.Invoke(fileNames);
};
}private static void Control_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Link;
}
else
{
e.Effect = DragDropEffects.None;
}
}
}
复制代码
使用方法:在窗体的load事件或构造方法中:

this.txt_selectFiles.ControlUseDrop(files => {
fileNames=files.Where(f => f.EndsWith(".sql")).ToList();
this.txt_selectFiles.Text = string.Join("\r\n", fileNames);
});
扩展方法是.net提供的一个语法糖,使用它可以很方便的封装一些通用功能。
深圳网站建设 https://www.sz886.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值