我目前正试图在我制作的小东西上获得显示屏幕坐标..但我有问题将文本刷新为新的X,Y值。
int x = Cursor.Position.X;
int y = Cursor.Position.Y;
textBox1.Text = "X: " + x + " Y: " + y + "";
textBox1.Refresh();
这就是我所拥有的,但我不明白为什么它不令人耳目一新?如果有人能向我解释那就太好了。
答案 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 + "";
}
请注意,当引发大量事件时,这可能会变慢。您可以构建一些计时器机制,以便每隔一段时间更新一次,具体取决于您的需求。