怎么模拟鼠标点击相对于父窗口内的指定坐标

l496626778 2012-03-29 12:38:19
如果这个窗口是600*400的 我向点击距离窗口右侧边缘100 距下侧边缘100 的位置 该怎么实现
...全文
377 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
darrenjj 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

// 设置鼠标位置
[DllImport("user32.dll")]
static extern bool SetCursorPos(int x, int y);
// 模拟点击
[DllImport("user32.dll")]
static extern bool mouse_event(int dwFlags, int dx, ……
[/Quote]

鼠标的位置可以用
Cursor.Position = new System.Drawing.Point(form.Location.X+form.Size.Width-100, form.Location.Y+form.Size.Height-100);
taylor-yang 2012-03-29
  • 打赏
  • 举报
回复
先获取到左侧边缘的坐标值,应该是X=0,Y=鼠标落点。底部边缘的坐标应该是X=窗体高度,Y=鼠标落点
。作为鼠标的初始坐标。比如你想让鼠从左侧向右偏移100,从底部向上偏移100,那就在初始坐标X,Y各
加上100,100就是偏移量。初始坐标+偏移量。
然后在鼠标的MouseDown事件、MouseMove事件中处理鼠标坐标。


这个窗体是以窗体中间点为鼠标初始坐标开始画线。然后鼠标移动时,实际画出的红线,和当前鼠标实际的坐标,相差100个坐标。画线时的效果就是鼠标在前面走,红线在后面很远的一段距离追。那段距离就是偏移量坐标。
mabaolin 2012-03-29
  • 打赏
  • 举报
回复
api函数 SetCursorPos(int x, int y)

只在此山中 2012-03-29
  • 打赏
  • 举报
回复
// 设置鼠标位置
[DllImport("user32.dll")]
static extern bool SetCursorPos(int x, int y);
// 模拟点击
[DllImport("user32.dll")]
static extern bool mouse_event(int dwFlags, int dx, int dy, int dwData, UInt64 dwExtraInfo);
//点击方法
public void MyClick(int x, int y)
{
SetCursorPos(x, y);
mouse_event(0x2, 0, 0, 0, 0);
mouse_event(0x4, 0, 0, 0, 0);
}
vinjent 2012-03-29
  • 打赏
  • 举报
回复
比較簡單的方法是使用MouseClick事件
private void Form1_MouseClick(object sender, MouseEventArges e)
{
textBox1.text=e.X +";"+ e.Y;
}
不然您可以用user32中的GetCursorPos的API函式

111,126

社区成员

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

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

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