Обновить местоположение метки в C #? - PullRequest
13 голосов
/ 09 июня 2009

У меня есть метод, который возвращает значение, и я хочу, чтобы это значение было новым местоположением метки в приложении формы Windows. но мне говорят, что местоположение метки не является переменной. objectA - это название метки.

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

как мне это сделать?

Ответы [ 6 ]

19 голосов
/ 09 июня 2009

свойство Location имеет тип Point, который является типом значения. Поэтому свойство возвращает копию значения местоположения, поэтому установка X для этой копии не будет влиять на метку. Компилятор видит это и генерирует ошибку, чтобы вы могли это исправить. Вы можете сделать это вместо:

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

(вызов Refresh бесполезен)

17 голосов
/ 09 июня 2009

Используйте свойство Left, чтобы изменить X-координату Label

objectA.Left = 100;
9 голосов
/ 09 июня 2009

Это работает для меня

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

Вам даже не нужно вызывать Refresh или SuspendLayout и т. Д.

так что это должно помочь вам

this.label1.Location = new Point((int)A.position, (int)A.otherpos);
1 голос
/ 31 июля 2009

objectname.Location = System.Drawing.Point (100100); * +1002 *

0 голосов
/ 28 октября 2011

Вы можете установить свойства структур, только если у вас есть прямая ссылка на эту структуру:

Point loc = objectA.Location;
loc.X = (int)A.position;
objectA.Location = loc;
0 голосов
/ 09 июня 2009
objectA.Location = new Point((int)A.position, objectA.Location.Y);
objectA.Refresh();

Местоположение не является переменной, просто публичной собственностью. Изменение переменных через свойства - плохая идея, если у вас нет событий, которые обновляют родительский элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...