如何放置光标精确的屏幕中心

时间:2011-06-15 11:27:29

标签: c# winforms

如何将光标放在C#的精确中心位置?

没有独立分辨率(可以是1024X768或1600X900)

3 个答案:

答案 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);