C# 自定义控件多选之后的拖动问题

hwangt0 2014-09-29 11:12:34
左边区域中的控件按住ctrl多选之后直接拖动到右边对象区 我用的是控件中的picturebox的mousedown事件,按住ctrl点鼠标左键就选中,再点就取消选中;不按ctrl点鼠标左键就把已经选中的置为未选中;DoDragDrop也是放在mousedown事件里面的;现在的问题是当我在左边按住ctrl选择3个控件(打个比方),然后拖动到右边的时候就只有两个(因为拖动的时候会触发mousedown,把选中的那个又取消了); 请问这个问题该怎样解决呢?或者说下windows里面按ctrl多选文件之后的拖动的实现思路;
...全文
185 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
boss_george 2014-09-29
  • 打赏
  • 举报
回复
引用 4 楼 a463658998 的回复:
哥 请问你认真看我写的了吗?
你是在质疑我么? 你看懂我给你的答案了么? 如果你认真看我写的了,那你问题就已经解决了,DropDrog是拖文件到界面用的,你方向错了。
於黾 2014-09-29
  • 打赏
  • 举报
回复
mousedown换成mouseclick或mouseup呗
hwangt0 2014-09-29
  • 打赏
  • 举报
回复
哥 请问你认真看我写的了吗?
boss_george 2014-09-29
  • 打赏
  • 举报
回复
首先,你需要明白,操作系统为什么名字叫:windows 我们看到的任何一个程序是一个window,任何一个控件是一个window,整个系统都是一个一个嵌套的window组成,所以操作系统叫做:windows 然后,你既然知道控件是window,那你就可以搜索:可拖动的无边框窗体 实现方法 最终,你只需要加个标记,需要拖动时候,执行拖动窗体的代码即可。 注意一点,如果拖动离开当前控件,需要设置Parent,以及需要使用对应的控件方法:PointToClient获取正确的位置。
hwangt0 2014-09-29
  • 打赏
  • 举报
回复
引用 1 楼 dianjixue1 的回复:
楼主这个问题让我想到了Word文档里的图片组合,就是这样的。解决起来就是选择的时候最后选中的那个是不需要的 其实不解决这个问题也可以,用的时间长了,用户就是知道了。
我其实想知道windows窗口里的多选拖动是怎么实现的
dianjixue1 2014-09-29
  • 打赏
  • 举报
回复
楼主这个问题让我想到了Word文档里的图片组合,就是这样的。解决起来就是选择的时候最后选中的那个是不需要的 其实不解决这个问题也可以,用的时间长了,用户就是知道了。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧