Winform程序中如何获取光标停留位置?

ha09070204 2012-03-12 05:29:58
急用,请教高手
...全文
592 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
烟波钓 2012-03-13
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ha09070204 的回复:]
引用 8 楼 yanbuodiao 的回复:
在你的窗体级别的onmousemove的事件触发的方法中调用这个方法 把鼠标的位置设置公共变量 在这个方法中直接判断鼠标的位置与GridView的位置关系 执行你想要的操作


这个不行的,我要的是按Backspace键后,判断光标位置
[/Quote]
我只能说 你太老实了……
sofant 2012-03-12
  • 打赏
  • 举报
回复
Point p = Cursor.Position;
jason成都 2012-03-12
  • 打赏
  • 举报
回复
控件有3个事件,mouseenter,mouseleave,mousemove;最后一个事件就是你要的。自己去看看帮助文档。
ha09070204 2012-03-12
  • 打赏
  • 举报
回复
高手呢
ha09070204 2012-03-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yanbuodiao 的回复:]
在你的窗体级别的onmousemove的事件触发的方法中调用这个方法 把鼠标的位置设置公共变量 在这个方法中直接判断鼠标的位置与GridView的位置关系 执行你想要的操作
[/Quote]

这个不行的,我要的是按Backspace键后,判断光标位置
烟波钓 2012-03-12
  • 打赏
  • 举报
回复
在你的窗体级别的onmousemove的事件触发的方法中调用这个方法 把鼠标的位置设置公共变量 在这个方法中直接判断鼠标的位置与GridView的位置关系 执行你想要的操作
ha09070204 2012-03-12
  • 打赏
  • 举报
回复
#region 快捷键关闭窗体
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) //激活回车键
{
int WM_KEYDOWN = 256;
int WM_SYSKEYDOWN = 260;

if (msg.Msg == WM_KEYDOWN | msg.Msg == WM_SYSKEYDOWN)
{
switch (keyData)
{
case Keys.Escape:
this.Close();//ESC关闭窗体
break;
//case Keys.Back:
// this.Close(); //Backspace关闭窗体
// break;
}
}
return false;
}
#endregion
在Backspace关闭窗体处,若光标停留在DataGridView上,按Backspace键,关闭此窗体
ha09070204 2012-03-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tanqian123 的回复:]
haha,不说清楚;
jayinIT给的API获取系统鼠标的方法;你要是判断DataGridView的鼠标位置,好像DataGridView有这个事件吧。
[/Quote]

不清楚
山村小民 2012-03-12
  • 打赏
  • 举报
回复
你要的,只要找个对应的事件就行了,很多。。。
tanqian123 2012-03-12
  • 打赏
  • 举报
回复
haha,不说清楚;
jayinIT给的API获取系统鼠标的方法;你要是判断DataGridView的鼠标位置,好像DataGridView有这个事件吧。
ha09070204 2012-03-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jayinit 的回复:]
首先引入

using System.Runtime.InteropServices;

其次需要

[DllImport("user32 ")]
public static extern bool GetCaretPos(ref System.Drawing.Point lpPoint);

最后

Point P = new Point(0);
Ge……
[/Quote]

看不懂,我要实现的是 判断光标是否停留在DataGridView上,如果是则执行一些操作
  • 打赏
  • 举报
回复
Control.MousePosition 属性,获取鼠标光标的位置(以屏幕坐标表示)。

Control.PointToClient(Point p)方法,可将指定屏幕点的位置计算成工作区坐标


Control.PointToScreen(Point p)方法,可将指定工作区的位置计算成屏幕坐标
  • 打赏
  • 举报
回复
首先引入

using System.Runtime.InteropServices;

其次需要

[DllImport("user32 ")]
public static extern bool GetCaretPos(ref System.Drawing.Point lpPoint);

最后

Point P = new Point(0);
GetCaretPos(ref P); //传递地址,使用ref前变量必须赋值

点P即为光标坐标



结贴!

111,126

社区成员

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

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

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