如何将光标放在C#的精确中心位置?
没有独立分辨率(可以是1024X768或1600X900)
答案 0 :(得分:12)
假设你只有一台显示器,那怎么样:
Cursor.Position = new Point(Screen.PrimaryScreen.Bounds.Width / 2,
Screen.PrimaryScreen.Bounds.Height / 2);
答案 1 :(得分:7)
首先获取感兴趣的 Screen 实例。如果您只想要主监视器,那么只需要询问 PrimaryScreen 实例。但是,如果您想要当前包含鼠标指针的监视器,请使用 FromPoint 静态方法。
// Main monitor
Screen s = Screen.PrimaryScreen;
// Monitor that contains the mouse pointer
Screen s = Screen.FromPoint(Cursor.Position);
要获取原始监视器边界,请使用 Bounds 实例属性。但是,如果您想要监视器的工作区域,在为任务栏和小部件分配空间后剩下的区域,则使用 WorkingArea 实例属性。
// Raw bounds of the monitor (i.e. actual pixel resolution)
Rectangle b = s.Bounds;
// Working area after subtracting task bar/widget area etc...
Rectangle b = s.WorkingArea;
最后将鼠标放在计算边界的中心。
// On multi monitor systems the top left will not necessarily be 0,0
Cursor.Position = new Point(b.Left + b.Width / 2,
b.Top + b.Height / 2);
答案 2 :(得分:0)
尝试
var r = Screen.PrimaryScreen.Bounds;
System.Windows.Forms.Cursor.Position = new Point(r.Bottom/2,r.Right/2);