2014-08-31 129 views
1

我試圖以編程方式設置標籤的位置,但編譯器說,這是不是一個變量的位置,更改標籤

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

我們都渴望代碼。 – SimpleVar 2014-08-31 09:42:24

+0

你能提供更多細節嗎?這是猜測,否則 - 什麼技術?的WinForms? WPF? MVC?任何代碼?什麼是錯誤?等等..幫我們幫你 – Charleh 2014-08-31 09:42:47

+0

謝謝你的關注,我已經更新了相應的問題 – TiMr 2014-08-31 10:03:22

回答

3

每一個.NET程序員,使這個錯誤至少一次。位置屬性是一個點,值類型。當你檢索它的值時,你會得到一個副本,就像值類型的行爲一樣。您正在更新該副本的X屬性,編譯器可以告訴您這是而不是您的想法。

你必須指定一個點來更新屬性值:

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

或使用是爲了避免寫這個代碼的特性:

label1.Left = 200; 
2

要正確更改標籤的位置,您必須將Location設置爲一個值(而不是Location的X屬性)。

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

如果您希望保留Y座標,例如,你可以這樣做:

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

哦,那會很好,非常感謝。 – TiMr 2014-08-31 10:11:59

+0

我可能得到了錯誤,因爲我沒有VS atm,但我相信你可以從那裏解決它。樂意效勞。 *編輯:完全檢查漢斯的答案* – SimpleVar 2014-08-31 10:15:33