更改标签的位置

时间:2014-08-31 09:40:34

标签: c#

我试图以编程方式设置标签的位置,但编译器说它不是变量,

label1.Location.X = 200;// shows an error

有什么技巧可以用来移动标签,不包括隐藏和显示控件。

技术是视觉c#而不是WPF。

我正在寻找一种在表单上移动一些文本的方法,我将文本的字符分开,为每个字符分别标注,以及数学公式

(x',y')=center;x'=200,y'=200,r=100
(x,y)=point on the circle.
sqr(x-x')+sqr(y-y')=sqr(r) => sqr(x-200)+sqr(y-200)=10000 => sqr(x)-400x+sqr(y)-400y+70000=0 =>  
x1=(400+sqrt(160000-4sqr(y)+1600y-280000))/2 ; 
x2=(400-sqrt(160000-4sqr(y)+1600y-280000))/2

此外,我正在考虑使用线程来刷新表单并创建动作,这只是我想要解决的一些想法。

非常感谢。

2 个答案:

答案 0 :(得分:3)

每个.NET程序员至少犯过一次这个错误。 Location属性是Point,值类型。当您检索其值时,您将获得副本,就像值类型一样。您正在更新该副本的X属性,编译器可以告诉您这是而不是您的想法。

您必须指定一个Point来更新属性值:

  label1.Location = new Point(200, label1.Location.Y);

或者使用为避免编写此代码而生成的属性:

  label1.Left = 200;

答案 1 :(得分:2)

要正确更改标签的位置,您必须将Location设置为值(而不是Location的X属性)。

lbl.Location = new Location(20, 50);

例如,如果您希望保留Y坐标,则可以执行以下操作:

lbl.Location = new Location(20, lbl.Location.Y);