获取相对于控件的光标位置 - C#

41

我想获取鼠标相对于控件的位置,也就是说当我将光标放在控件的起始点(左上角)时,它应该给出(0,0)。我正在使用以下代码:

    private void panel1_MouseMove(object sender, MouseEventArgs e)
    {
        this.Text = Convert.ToString(Cursor.Position.X + ":" + Cursor.Position.Y);         
    } 

但是这个方法返回的位置是相对于屏幕而不是控件的。

如果有示例代码会更好。

11个回答

0

创建标准的C#WinForms项目

在设计页面上放置2个名为X和Y的文本框,以及一个来自工具箱的计时器对象

按[F7],并用以下代码替换所有代码。

using System;
using System.Windows.Forms;

namespace MousePos
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            timer1.Start();
        }

        private void Form1_MouseCaptureChanged(object sender, EventArgs e)
        {
            X.Text = MousePosition.X.ToString();
            Y.Text = MousePosition.Y.ToString();
        }
    }
}

将计时器的Tick操作设置为"Form1_MouseCaptureChanged"

[F5]运行 - 现在你有了一个鼠标位置应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接