XInput.Text = Cursor.Position.X.ToString();
在Form上規劃XInput與YInput兩個文字方塊,Text是文字方塊的屬性。
Cursor.Position是C#的一個類別,可以提供滑鼠游標的資訊,傳回一個Point結構 (在此指X or Y)。
Cursor.Position.X 表示獲取當前滑鼠游標的X座標
Cursor.Position.Y 表示獲取當前滑鼠游標的Y座標
ToString 表示將 X,Y座標的數值轉為字串
可在 XInput 與 YInput 兩個文字方塊中手動輸入我希望滑鼠游標移動到的指定數字座標去。
int x = Convert.ToInt32(XInput.Text);
XInput 的文字方塊中取得的文字內容轉換為整數,然後將結果存儲在名為 x 的整數變數中
ToInt32() 將輸入給XInput值轉換為 32 位元有號的int整數, Convert.ToInt32()是C#常見的用法。
this.Cursor = new Cursor(Cursor.Current.Handle);
Cursor.Position = new Point(Cursor.Position.X - 50, Cursor.Position.Y - 50);
上述第一列會從 Current 游標的 Handle 建立資料指標,變更位置暨裁剪矩形。游標在執行程式碼時,會分別向左與向上移動 50 像素。
此外,游標的預設範圍會變成在表單界限範圍內。這些設定需要表單(Form)和按鈕(Button)兩種物件,才能在按一下時呼叫此段code發揮功能。
Cursor.Clip = new Rectangle(this.Location, this.Size);
Cursor.Clip 為 C# 屬性,用來獲取滑鼠游標的裁剪區域。用意是將滑鼠游標的移動範圍限制在此區域內。
new Rectangle(this.Location, this.Size) 被創造為一個矩形,這個矩形的位置和大小由 this 物件的位置(Location)和大小(Size)定義。
一般來說,this 代表目前的視窗或控制項,所以這行程式碼的目的是將滑鼠游標的裁剪區域設置為當前視窗或控制項的區域。
完整程式代碼
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 鼠標點擊與移動測試
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
XInput.Text = Cursor.Position.X.ToString();
YInput.Text = Cursor.Position.Y.ToString();
}
private void MoveMouse_Click(object sender, EventArgs e)
{
int x = Convert.ToInt32(XInput.Text);
int y = Convert.ToInt32(YInput.Text);
this.Cursor = new Cursor(Cursor.Current.Handle);
Cursor.Position = new Point(Cursor.Position.X - 50, Cursor.Position.Y - 50);
Cursor.Clip = new Rectangle(this.Location, this.Size);
}
}
}
結果呈現