更新C#中的标签位置?

ava*_*ske 13 c# label runtime winforms

我有一个返回值的方法,我希望这个值是Windows窗体应用程序中标签的新位置.但我被告知标签的位置不是变量.objectA是标签的名称.

objectA.Location.X = (int)A.position;
objectA.Refresh();
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

Tho*_*que 19

Location属性的类型为Point,它是一种值类型.因此,该属性返回位置值的副本,因此在此副本上设置X将不会对标签产生任何影响.编译器会看到并生成错误,以便您可以修复它.你可以这样做:

objectA.Location = new Point((int)A.position, objectA.Location.Y);
Run Code Online (Sandbox Code Playgroud)

(对Refresh的调用没用)


Jul*_*lin 17

使用该Left属性更改a的X坐标Label

objectA.Left = 100;
Run Code Online (Sandbox Code Playgroud)

  • 最后,Left属性和Location属性都在内部使用SetBounds方法.Left属性的优点是你不必创建一个新的Point对象,如果你强烈地执行它可能会快一点...... (2认同)

Rom*_*anT 9

这对我有用

this.label1.Location = new Point(10, 10);
Run Code Online (Sandbox Code Playgroud)

您甚至不需要调用Refresh或SuspendLayout等.

所以这应该对你有帮助

this.label1.Location = new Point((int)A.position, (int)A.otherpos);
Run Code Online (Sandbox Code Playgroud)