自动更新文本标签?

时间:2016-04-04 07:52:17

标签: c# winforms

我目前正试图在我制作的小东西上获得显示屏幕坐标..但我有问题将文本刷新为新的X,Y值。

int x = Cursor.Position.X;
int y = Cursor.Position.Y;

textBox1.Text = "X: " + x + " Y: " + y + "";
textBox1.Refresh();

这就是我所拥有的,但我不明白为什么它不令人耳目一新?如果有人能向我解释那就太好了。

2 个答案:

答案 0 :(得分:1)

正如Patrick Hofman告诉你的那样,你必须处理鼠标移动事件。试试这段代码:

public Form1()
{
    InitializeComponent();
    this.MouseMove += new MouseEventHandler(Form1_MouseMove);
}

void Form1_MouseMove(object sender, MouseEventArgs e)
{
    int x = Cursor.Position.X;
    int y = Cursor.Position.Y;

    textBox1.Text = "X: " + x + " Y: " + y + "";
}

答案 1 :(得分:1)

该文本并没有神奇地自我更新。

您必须处理相应的事件,例如表单上的MouseMove

所以在构造函数中挂钩事件;

public Form1()
{
    InitializeComponent(); // this is usually already there

    this.MouseMove += Form1_MouseMove;
}

然后在事件处理程序中调用您的代码:

private void Form1_MouseMove(object sender, MouseEventArgs e)
{
    int x = Cursor.Position.X;
    int y = Cursor.Position.Y;

    textBox1.Text = "X: " + x + " Y: " + y + "";
}

请注意,当引发大量事件时,这可能会变慢。您可以构建一些计时器机制,以便每隔一段时间更新一次,具体取决于您的需求。