求方法 怎么监控鼠标的动作

Rumia 2014-08-16 03:44:31
panel内多个控件 设置panel.autoscroll=true
我的想法是当鼠标在panel区域内按下时
让panel的滚动条随着鼠标移动而移动且不超过最小最大值

主要问题:
1、怎么监控到鼠标左键按下?
2、怎么判断鼠标在panel范围内按下?因为panel内有不少控件 不能直接用mousedown事件
3、按下后开始监控鼠标移动 还有怎么释放?
...全文
395 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mingcsharp 2014-08-19
  • 打赏
  • 举报
回复
也可以用钩子,有点浪费,我正在搞这点,和你的相似 public int LowLevelMouseProc(int nCode, int wParam, IntPtr lParam) { if (wParam == Win32API.WM_MOUSEMOVE) { MouseHookStruct mhs = (MouseHookStruct)Marshal.PtrToStructure(lParam, typeof(MouseHookStruct)); ScreenPoint = mhs.pt; Time = mhs.time; if (SendPointevent != null) SendPointevent(screenPoint, time); } return 0; } public void BeginHook() { if (hHook == IntPtr.Zero) { hookpro = new HookProcHandler(LowLevelMouseProc); IntPtr hInstance = Win32API.GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName); hHook = Win32API.SetWindowsHookEx(WindowHook.WH_MOUSE_LL, hookpro, hInstance, 0); } }
bdmh 2014-08-19
  • 打赏
  • 举报
回复
你可以实时通过api函数GetCursorPos获得鼠标位置,然后转换到panel内,看看是否在其中
  • 打赏
  • 举报
回复
这个你需要查看windoes api

110,539

社区成员

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

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

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