本文转载自:
https://www.cnblogs.com/wangjixianyun/archive/2013/02/25/2931582.html 作者:wangjixianyun 转载请注明该声明。
c#的winform里的MouseMove事件很特殊,当鼠标在一个组件上移动的时候会收到MouseMove事件,但是另一种情况:当在组件上按住左键拖拽移动(组件先收到MouseDown事件)的时候,鼠标在整个窗口内移动时,这个组件都会收到MouseMove事件,而这个组件的MouseUp事件的就收范围也会变为窗口,也就是说,按住左键的情况是特殊的,随后的所有鼠标事件都会被发送到MouseDown发送到的那个组件。貌似是winform为实现组件拖拽的特殊处理。
这样拖拽组件就变得更容易实现了,只要在单个组件上就能实现,而不用想javascript或其他ui框架那么麻烦了。
例子:http://www.codeproject.com/Articles/31840/Move-controls-on-a-form-at-runtime
本文深入解析C#中WinForm的鼠标事件处理机制,特别是MouseMove事件的特性,以及如何利用这些特性轻松实现组件拖拽功能。文中通过实例说明,在组件上按下鼠标左键并拖动时,组件将接收到整个窗口范围内的MouseMove和MouseUp事件,这是WinForm为简化组件拖拽操作而做的特殊处理。
622

被折叠的 条评论
为什么被折叠?



