在C#中更新标签位置?
我有一个返回值的方法,我希望这个值是Windows窗体应用程序中标签的新位置。 但我被告知标签的位置不是变量。 objectA是标签的名称。
objectA.Location.X = (int)A.position; objectA.Refresh();
我该怎么做呢?
使用Left
属性更改Label
X坐标
objectA.Left = 100;
Location属性的类型为Point,它是一种值类型。 因此,该属性返回位置值的副本,因此在此副本上设置X将不会对标签产生任何影响。 编译器会看到并生成错误,以便您可以修复它。 你可以这样做:
objectA.Location = new Point((int)A.position, objectA.Location.Y);
(对Refresh的调用没用)
这对我有用
this.label1.Location = new Point(10, 10);
您甚至不需要调用Refresh或SuspendLayout等。
所以这应该对你有帮助
this.label1.Location = new Point((int)A.position, (int)A.otherpos);
objectname.Location = System.Drawing.Point(100,100);
如果直接引用该结构,则只能设置结构的属性:
Point loc = objectA.Location; loc.X = (int)A.position; objectA.Location = loc;
objectA.Location = new Point((int)A.position, objectA.Location.Y); objectA.Refresh();
位置不是变量,只是一个公共财产。 除非您有更新父级的事件,否则通过属性更改变量是个坏主意。