鼠标移动没有更新label.Text

本文关键字:label Text 更新 移动 鼠标 | 更新日期: 2023-09-27 18:11:56

我有一个表单,上面有三个标签,它们的值随着鼠标移动而变化。两个管用,第三个不行。下面是我的MouseMove代码:

double latitude = Math.Round(Math.Acos(latRadius / maxRadius) * (180.0/Math.PI), 2);
label1.Text = x.ToString() + "," + y.ToString();
label2.Text = latRadius.ToString() + "," + maxRadius.ToString();
label3.Text = Convert.ToString(latitude);

前两个标签正确更新,第三个标签只是继续说'90'。有什么问题吗?由于

鼠标移动没有更新label.Text

尝试:

double latitude = 
    Math.Acos(latRadius * 1d / maxRadius) * (180.0/Math.PI);
label3.Text = latitude.ToString("0.00");

EDITED回复用户评论:
你的问题是你对latRadiusmaxRadius都使用整数(我认为);所以当你的应用程序评估(latRadius / maxRadius)时,它使用整数除法,因为latRadius小于maxRadius,所以它总是零!
这就是你没有看到任何更新的原因。
现在,使用(latRadius * 1d / maxRadius),您可以强制编译器使用实数除法(*1d表示双数字1的乘法),并且工作完成了。

:
如果要在其他公式中使用Math.Round,则不要在latitude上使用CC_6。