鼠标拖动效果
来源:互联网 发布:监控淘宝均价软件 编辑:程序博客网 时间:2024/05/22 08:22
using System;02.using System.Collections.Generic;03.using System.ComponentModel;04.using System.Data;05.using System.Drawing;06.using System.Text;07.using System.Windows.Forms;08.09.namespace WindowsApplication110.{11. public partial class FormDrag : Form12. {13. //将被拖动的控件 14. private Control control;15. public FormDrag()16. {17. InitializeComponent();18.19. this.Paint += new System.Windows.Forms.PaintEventHandler(this.FormDrag_Paint);20.21. control = new Button();22. control.MouseDown += new MouseEventHandler(control_MouseDown);23. control.MouseMove += new MouseEventHandler(control_MouseMove);24. control.MouseUp += new MouseEventHandler(control_MouseUp);25. this.Controls.Add(control); 26. }27. 28. //鼠标按下坐标(control控件的相对坐标) 29. Point mouseDownPoint = Point.Empty;30. //显示拖动效果的矩形 31. Rectangle rect = Rectangle.Empty;32. //是否正在拖拽 33. bool isDrag = false;34. void control_MouseDown(object sender, MouseEventArgs e)35. {36. if (e.Button == MouseButtons.Left)37. {38. mouseDownPoint = e.Location;39. //记录控件的大小 40. rect = control.Bounds;41. }42. }43. void control_MouseMove(object sender, MouseEventArgs e)44. {45. if (e.Button == MouseButtons.Left)46. {47. isDrag = true;48. //重新设置rect的位置,跟随鼠标移动 49. rect.Location = getPointToForm(new Point(e.Location.X - mouseDownPoint.X, e.Location.Y - mouseDownPoint.Y));50. this.Refresh();51. 52. }53. }54. void control_MouseUp(object sender, MouseEventArgs e)55. {56. if (e.Button == MouseButtons.Left)57. {58. if (isDrag)59. {60. isDrag = false;61. //移动control到放开鼠标的地方 62. control.Location = rect.Location;63. this.Refresh();64. }65. reset();66.67. }68. }69. //重置变量 70. private void reset()71. {72. mouseDownPoint = Point.Empty;73. rect = Rectangle.Empty;74. isDrag = false;75. }76. //窗体重绘 77. private void FormDrag_Paint(object sender, PaintEventArgs e)78. {79. if (rect != Rectangle.Empty)80. {81. if (isDrag)82. {//画一个和Control一样大小的黑框 83. e.Graphics.DrawRectangle(Pens.Black, rect);84. }85. else86. {87. e.Graphics.DrawRectangle(new Pen(this.BackColor), rect);88. }89. }90. }91. //把相对与control控件的坐标,转换成相对于窗体的坐标。 92. private Point getPointToForm(Point p)93. {94. return this.PointToClient(control.PointToScreen(p));95. }96. 97. }98.}
0 0
- jquery 鼠标拖动效果
- 鼠标拖动效果
- JQ鼠标拖动效果
- 简单的鼠标拖动效果
- 鼠标可拖动的浮动层效果
- JS做的鼠标拖动翻页效果
- Silverlight不响应鼠标实现拖动效果
- VC - MFC鼠标拖动效果编程
- js 实现 鼠标拖动DIV 效果
- 鼠标实现物体拖动带拖尾的效果
- 鼠标拖动
- 鼠标拖动
- 鼠标拖动
- 自由控制显示图片大小,鼠标拖动图片看效果
- 鼠标拖动事件_js效果(深入分析)
- js鼠标拖动层/层的移动和浮动效果
- 一个使用Jquery写的一个鼠标拖动效果
- cocos2dx三行代码实现拖动/鼠标跟随效果
- JAVA学习笔记44——其他容器简介2:HashTable+Properties
- 工作2个半月
- Problem E: 月份牌
- 自考《操作系统概论》之文件管理
- 2321
- 鼠标拖动效果
- Camera 图像处理原理及实例分析
- hybris学习过程-----Preparation
- web.config详解(配置文件节点说明)
- 【Android】Merge讲解与实例
- 普林斯顿算法课第四周作业
- 这些二级域名管用吗
- 222222
- Axure有哪些好处?产品经理选择Axure的十个理由!