C# DragDrop 事件 拖放无法触发 解决办法

C# DragDrop 事件 无法触发 解决办法

在WIn7、8、10系统上,我们想要为控件添加拖放事件,使用DragDrop事件发现无法触发现象,这是由于系统UAC权限导致的
这里我以ListView控件举例,解决办法:

第一步:设置 AllowDrop 属性

ListView.AllowDrop = true;

第二步:为 ListView 添加拖放事件

//当拖放数据进入控件时触发的事件
ListView.DragOver += new DragEventHandler(ListView_DragOver);
//当拖放数据操作完成时触发的事件
ListView.DragDrop += new DragEventHandler(ListView_DragDrop);

第三步:创建第二步事件方法代码

        /// <summary>
        /// 把文件拖到列表框边界时发生的事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ListView_DragOver(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.All;
        }
        /// <summary>
        /// 列表框文件拖放操作完成时事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ListView_DragDrop(object sender, DragEventArgs e)
        {
            //获取拖放数据,如果拖放对象为文件(文件夹)
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                string[] FileArray = (string[])e.Data.GetData(DataFormats.FileDrop);
                for (int i = 0; i < FileArray.Length; i++)
                {
                    //这是获得的文件路径,请自行应用
                    String FilePath = content[i];
                }
            }
        }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值