吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1706|回复: 10
收起左侧

[已解决] 【已解决】C# 微信图片拖拽

[复制链接]
wYw729 发表于 2022-3-6 11:03
本帖最后由 wYw729 于 2022-3-20 21:52 编辑

问题描述
我做了一个winform程序 ,其中的一个功能是把照片拖到winform程序内显示。
1. 拖拽本机照片正常显示
2.从微信PC客户端拖拽到本地桌面图片可以保存到桌面(微信PC版自带功能)。
3.从微信PC客户端拖拽到winform程序中,禁止拖拽。(我需求的功能)

请教问题:
为什么,不能直接从微信PC客户端的聊天窗口直接拖拽到winfrom中?
是什么原因造成的?
解决思路是什么样的?

有源码最好,没有也请描述清楚解决思路!  万分感谢,跪求。

附图一张
image.png

免费评分

参与人数 1吾爱币 +1 收起 理由
xiang9897 + 1 你成功了 文件分享出来啊

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

xiaovssha 发表于 2022-3-6 13:52
360截图187201248683123.png
三滑稽甲苯 发表于 2022-3-6 14:43
我的猜测是微信图片拖到桌面/文件管理器是它专门做了接口适配,但是并没有做拖到其他地方的接口
gzm970726 发表于 2022-3-6 16:08
 楼主| wYw729 发表于 2022-3-6 16:36

[C#] 纯文本查看 复制代码
      private void pictureBox1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effect = DragDropEffects.Move;
            }
            else
            {
                e.Effect = DragDropEffects.None;
            }
        }

        private void pictureBox1_DragDrop(object sender, DragEventArgs e)
        {
            string[] s = (string[])e.Data.GetData(DataFormats.FileDrop);
            pictureBox1.ImageLocation = s[0];
            _PicPath1 = s[0];
        }


这是我写的代码 可否提供源码
 楼主| wYw729 发表于 2022-3-6 16:52

我试了一下 textbox可以 我用pictureBox显示的不让拖
 楼主| wYw729 发表于 2022-3-6 16:59

感谢你的解答 问题解决了

e.Effect = DragDropEffects.Move;  不可以
换成
e.Effect = DragDropEffects.Copy; 就解决了
零下八度 发表于 2022-3-6 17:28
本帖最后由 零下八度 于 2022-3-6 17:30 编辑

设置 AllowDrop = true 就可以拖了。

都是障眼法而已,其实还是跟你本地拖放到 winform 一样的,所谓的"从微信PC客户端拖拽到winform程序中"其实是俩步骤,
1.微信把图片保存到本地了,然后在拖放事件里给你提供这个图片的路径(微信做的,与你无关,你知道就行)
2.你自己的程序接收这个图片路径,然后读取出来显示到 pictureBox(做法跟拖放本地图片一模一样) 。

原理就是这么个原理,代码就不打了,也不难

 楼主| wYw729 发表于 2022-3-6 17:30
零下八度 发表于 2022-3-6 17:28
设置 AllowDrop = true 就可以拖了。

都是障眼法而已,其实还是跟你本地拖放到 winform 一样的,所谓的" ...

设置 AllowDrop = true 是拖拽的前提,我这原因是 e.Effect = DragDropEffects.Move;   。。Move改Copy就可以了 。谢谢解答。
零下八度 发表于 2022-3-6 17:49
都行吧,一般拖放取数据我都是用 DragDropEffects.All 。都说到这了,有兴趣的话,你可以试试拓展一下,练练手。
比如跟微信一样拖放到任意文件夹保存图片,在 pictureBox1 拖 到 pictureBox2,在 exe1 pictureBox1 拖到 exe2.pictureBox1,
当然,其实都不难,也没啥特殊用处,只是说这是个练手方向,你做完这几个,相信拖放文件这种小把戏对你来说应该就理解的差不多了,
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 15:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表