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

  

原文地址:https://www.cnblogs.com/YYkun/p/12054381.html

时间: 2024-11-07 13:05:49

C# 设置鼠标光标位置的相关文章

设置鼠标光标方法

一.在MFC中设置鼠标光标 1.载入系统光标 ::SetCursor( ::LoadCursor( NULL, IDC_HAND )  ); 注意: LoadCursor第一个参数必须为NULL,否则会载入失败.如果以以下方式调用,则会失败: ::SetCursor(  ::LoadCursor( AfxGetApp()->LoadCursor( IDC_HAND ) ) ); 或::SetCursor( ::LoadCursor( AfxGetInstanceHandle(), IDC_HAN

EditText设置/隐藏光标位置、选中文本和获取/清除焦点(转)

转:http://blog.csdn.net/dajian790626/article/details/8464722 有时候需要让光标显示在EditText的指定位置或者选中某些文本.同样,为了方便用户输入以提升用户体验,可能需要使EditText获得或失去焦点. 1. 设置光标到指定位置 EditText et = (EditText) findViewById(R.id.etTest); et.setSelection(2); PS:当内容过多时,可通过设置光标位置来让该位置的内容显示在屏

Range对象理解,浏览器兼容性,获取鼠标光标位置

一.关于浏览器的兼容性 目前主要有3种关于range的类似的对象,分别是W3C range 对象,Mozzlia selection ,ie TextRange 关于这三种的区别,请查看文档 http://www.quirksmode.org/dom/w3c_range.html 这里面对这三个是说的很清楚的 可以看出 Mozilla 的 range 是一个selection对象 ,而在ie下 range 是一个 text Range 这个和Mozilla是完全不同的,所以需要为这两种类型的ra

[Android教程]EditText设置/隐藏光标位置、选中文本和获取/清除焦点

有时候需要让光标显示在EditText的指定位置或者选中某些文本.同样,为了方便用户输入以提升用户体验,可能需要使EditText获得或失去焦点. 1. 设置光标到指定位置 EditText et = (EditText) findViewById(R.id.etTest); et.setSelection(2); PS:当内容过多时,可通过设置光标位置来让该位置的内容显示在屏幕上. 2. 隐藏光标 EditText et = (EditText) findViewById(R.id.etTes

android 设置EditText光标位置

Android中有很多可编辑的弹出框,其中有些是让我们来修改其中的字符,这时光标位置定位在哪里呢? 刚刚解了一个bug是关于这个光标的位置的,似乎Android原生中这种情况是把光标定位到字符串的最前面.需求是将光标定位到字符的最后面. 修改的地方是TextView这个控件,因为EditText也是继承了TextView.在setText方法中有: 1  private void setText(CharSequence text, BufferType type,2             

C#-WinForm-如何获取文本框(TextBox)中鼠标,光标位置

文本框(TextBox)中的鼠标位置和光标位置是两个不同的概念,鼠标位置是要点击鼠标后(NouseDown)获取到,而光标位置却是实时就要获取到,也就是用户输入一个字符(KeyUp),这个位置就要改变一次,不需要鼠标的任何操作的. 下面代码能同时获取鼠标和光标位置,这里的"位置"指的是在字符串中的第几个. 需要在窗体上加上一个文本框(textBox1),还要绑定textBox1_KeyUp和textBox1_MouseDown事件. 要想实现鼠标点击或按键后光标位置获取,可用时使用下列

可编辑DIV (contenteditable=&quot;true&quot;) 在鼠标光标处插入图片或者文字

近期需开发一个DIV做的编辑器,插入表情图片可直接预览效果,仔细参考了下百度贴吧的过滤粘贴过来文件的THML代码,自己整理了下.写出来只是和大家分享下,我自己也不大懂,经过努力,幸好搞定. 蛋疼的事情出来了,当编辑框失去焦点时候,再插入图片时候总是插入在最前面(谷歌和火狐,IE没问题).还没搞定,,, <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/

javascript获取以及设置光标位置

一. 获取光标位置: // 获取光标位置 function getCursortPosition (textDom) { var cursorPos = 0; if (document.selection) { // IE Support textDom.focus (); var selectRange = document.selection.createRange(); selectRange.moveStart ('character', -textDom.value.length);

uwp - RichEditBox - 滚动至光标位置,解决行数超出后设置颜色滚动条回滚顶部的问题

开发中碰到一个问题,当RichEditBox输入的文本达到一定行数的时候设置文本颜色或大小.样式等滚动条会跳到顶部,但是光标其实还是在下面的位置,这样对用户体验造成很大困扰,解决方案就是在设置完成颜色大小样式后重新将光标位置设置一下就可以了. 在设置文本颜色之后加上这句代码: 1 //重新定位到位置 2 try 3 { 4 控件名字.Document.Selection.EndKey(TextRangeUnit.Line, false); 5 } 6 catch 7 { 8 9 } 应该解决了.