怎样鼠标当前的位置,得到控件的句柄?

Maxdell 2009-05-05 10:51:23
在MouseUp事件中,可以得到当前鼠标的坐标 Point, 怎样得到这个Point所在的控件的句柄呢?
...全文
345 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbb332 2009-05-06
  • 打赏
  • 举报
回复
学习了
xufzu123 2009-05-06
  • 打赏
  • 举报
回复
学习~~
glyes_net 2009-05-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jest850615 的回复:]
mark

顺便问一下,5楼取得 IntPtr ,怎么通过它取得控件对象呢?
[/Quote]

用API
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern int GetClassName(
IntPtr hWnd,
StringBuilder lpClassName,
int nMaxCount
);
就可以根据获取的intptr来找到对应的控件类型,再利用API:
[DllImport("User32.dll", EntryPoint = "SendMessage")]
private static extern int SendMessage(
IntPtr hWnd,
int Msg,
IntPtr wParam,
StringBuilder lParam);
还可以获取或者设置控件的文本信息
zgke 2009-05-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jest850615 的回复:]
mark

顺便问一下,5楼取得 IntPtr ,怎么通过它取得控件对象呢?
[/Quote]

这个取到IntPrt 是系统用的... 你可以递归你自己的控件.比较 Handle值来获取控件..这个方法是可以获取到你程序以外的句并.
jest850615 2009-05-06
  • 打赏
  • 举报
回复
mark

顺便问一下,5楼取得 IntPtr ,怎么通过它取得控件对象呢?
glyes_net 2009-05-05
  • 打赏
  • 举报
回复
获取想要的控件坐标后,用API:
[DllImport("user32.dll", EntryPoint = "WindowFromPoint")]
public static extern IntPtr WindowFromPoint(
int xPoint,
int yPoint
);
获取当前坐标外的控件句柄就可以了
Maxdell 2009-05-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 coconutyf 的回复:]
IntPtr handle = (sender as Control).Handle
[/Quote]


强啊!

这都回答得出来。

我要是鼠标在button1上按下,然后移动到button2上 UP,你得到的是button1的坐标。
真是服了你了!
ws_hgo 2009-05-05
  • 打赏
  • 举报
回复
关注
LemIST 2009-05-05
  • 打赏
  • 举报
回复
e.X, e.Y是坐标
sender是控件
coconutyf 2009-05-05
  • 打赏
  • 举报
回复
IntPtr handle = (sender as Control).Handle

111,126

社区成员

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

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

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