C#快速实现拖放操作

 更新时间:2022年06月16日 10:06:49   作者:天方  
这篇文章介绍了C#快速实现拖放操作的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

拖放操作是一个我比较喜欢的用户体验,但实现起来稍显麻烦,这里我将它的常用方式简单的集合了一下,作为扩展方法,以便快速调用:

static class DrapDropExtend
{
    public static void SimpleDrapDrop<T>(this Control c, string dataformat, Action<T> hanlder) where T : class
    {
        c.AllowDrop = true;
        c.DragEnter += (s, e) =>
            {
                if (e.Data.GetDataPresent(dataformat))
                    e.Effect = DragDropEffects.Copy;
                else
                    e.Effect = DragDropEffects.None;
            };

        c.DragDrop += (s, e) =>
            {
                var data = e.Data.GetData(dataformat) as T;
                hanlder(data);
            };
    }

    public static void SimpleDrapDrop(this Control c, Action<DragEventArgs> enterHanlder, Action<DragEventArgs> dropHanlder)
    {
        c.AllowDrop = true;
        c.DragEnter += (s, e) => enterHanlder(e);
        c.DragDrop += (s, e) => enterHanlder(e);
    }

    public static void SimpleDrapDrop(this Control c, DragEventHandler enterHanlder, DragEventHandler dropHanlder)
    {
        c.AllowDrop = true;
        c.DragEnter += enterHanlder;
        c.DragDrop += dropHanlder;
    }
}

该类使得实现拖放更加简单了,一个简单的示例如下:

public Form1()
{
    InitializeComponent();
    this.SimpleDrapDrop<string>(DataFormats.Text, x => this.Text = x);
}

这比通过IDE来实现要简洁得多。

到此这篇关于C#快速实现拖放操作的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • c#字符串值类型与引用类型比较示例

    c#字符串值类型与引用类型比较示例

    这篇文章主要介绍了c#字符串值类型与引用类型比较示例,需要的朋友可以参考下
    2014-03-03
  • C#常用排序方式总结

    C#常用排序方式总结

    在最近的项目中经常会对C#中的数据进行排序,对于基本数据类型,其排序方式比较简单,只需要调用内置算法即可实现,但对于自定义数据类型以及自定义排序规则的情况实现起来就比较麻烦,所以在本文章中将详细介绍一下在中C#中如何对数据进行排序,需要的朋友可以参考下
    2024-01-01
  • C# WinForm中Panel实现用鼠标操作滚动条的实例方法

    C# WinForm中Panel实现用鼠标操作滚动条的实例方法

    由于在WinForm中Panel不能直接响应鼠标的滚动事件,只好采用捕获窗体的滚动事件。
    2013-03-03
  • Qt读取本地系统时间的几种方式小结

    Qt读取本地系统时间的几种方式小结

    这篇文章主要介绍了Qt读取本地系统时间的几种方式小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-03-03
  • c# 实现的支付宝支付

    c# 实现的支付宝支付

    这篇文章主要介绍了c# 实现的支付宝支付的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-01-01
  • C# 获取当前总毫秒数的实例讲解

    C# 获取当前总毫秒数的实例讲解

    这篇文章主要介绍了C# 获取当前总毫秒数的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • C#无损压缩图片

    C#无损压缩图片

    本文主要介绍了C#无损压缩图片的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • c#初学简单程序实例代码介绍

    c#初学简单程序实例代码介绍

    这篇文章介绍了c#初学简单程序实例代码,有需要的朋友可以参考一下
    2013-10-10
  • C#表达式目录树示例详解

    C#表达式目录树示例详解

    这篇文章主要给大家介绍了关于C#表达式目录树的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Unity3D实现相机跟随控制

    Unity3D实现相机跟随控制

    这篇文章主要为大家详细介绍了Unity3D实现相机跟随控制,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07

最新评论