zoukankan      html  css  js  c++  java
  • C# 设置鼠标光标位置

    C# 设置鼠标光标位置

    using System.Drawing;
    using System.Runtime.InteropServices;
    
    namespace ZB.QueueSys.Common
    {
        public class MouseHelper
        {
            private static MouseHelper instance;
            public static MouseHelper Instance
            {
                get
                {
                    if (instance == null) instance = new MouseHelper();
                    return MouseHelper.instance;
                }
            }
    
            /// <summary>
            /// 引用user32.dll动态链接库(windows api),
            /// 使用库中定义 API:SetCursorPos 
            /// </summary>
            [DllImport("user32.dll")]
            private static extern int SetCursorPos(int x, int y);
            /// <summary>
            /// 移动鼠标到指定的坐标点
            /// </summary>
            public void MoveMouseToPoint(Point p)
            {
                SetCursorPos(p.X, p.Y);
            }
            /// <summary>
            /// 设置鼠标的移动范围
            /// </summary>
            public void SetMouseRectangle(Rectangle rectangle)
            {
                System.Windows.Forms.Cursor.Clip = rectangle;
            }
            /// <summary>
            /// 设置鼠标位于屏幕中心
            /// </summary>
            public void SetMouseAtCenterScreen()
            {
                int winHeight = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height;
                int winWidth = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width;
                Point centerP = new Point(winWidth / 2, winHeight / 2);
                MoveMouseToPoint(centerP);
            }
    
        }
    }
    
    
    调用测试如下:
                int y = Screen.PrimaryScreen.WorkingArea.Height - 180;
                int x = Screen.PrimaryScreen.WorkingArea.Width - 180;
                Point p = new Point(x, y);
                MouseHelper.Instance.MoveMouseToPoint(p);    
    

    C#获取指定控件所在屏幕的位置

             int x = this.dgvList.Location.X;
                int y = this.dgvList.Location.Y;
                Point p = new Point(x, y);
                Point pp = this.dgvList.PointToScreen(p);
                MouseHelper.Instance.MoveMouseToPoint(pp);
    

      

      

  • 相关阅读:
    清北学堂2019NOIP提高储备营DAY1
    最小生成树--克鲁斯卡尔算法(Kruskal)
    关于队列(还有广度优先搜索的例题)
    染色问题
    行列式的相关知识
    素数筛法
    中国剩余定理(孙子定理)
    AOJ 9.University
    AOJ 8.童年生活二三事
    AOJ 7.Redraiment猜想
  • 原文地址:https://www.cnblogs.com/YYkun/p/12054381.html
Copyright © 2011-2022 走看看