更新C#中的标签位置?

时间:2009-06-09 07:56:40

标签: c# winforms label runtime

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

objectA.Location.X = (int)A.position;
objectA.Refresh();

我该怎么做?

6 个答案:

答案 0 :(得分:19)

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

objectA.Location = new Point((int)A.position, objectA.Location.Y);

(对Refresh的调用没用)

答案 1 :(得分:17)

使用Left属性更改Label

的X坐标
objectA.Left = 100;

答案 2 :(得分:9)

这对我有用

this.label1.Location = new Point(10, 10);

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

所以这应该可以帮到你

this.label1.Location = new Point((int)A.position, (int)A.otherpos);

答案 3 :(得分:1)

  

objectname.Location =   System.Drawing.Point(100,100);

答案 4 :(得分:0)

objectA.Location = new Point((int)A.position, objectA.Location.Y);
objectA.Refresh();

位置不是变量,只是公共财产。 除非您有更新父级的事件,否则通过属性更改变量是个坏主意。

答案 5 :(得分:0)

如果直接引用该结构,则只能设置结构的属性:

Point loc = objectA.Location;
loc.X = (int)A.position;
objectA.Location = loc;