Ответ 1
Используйте свойство Left
для изменения координаты X в Label
objectA.Left = 100;
У меня есть метод, который возвращает значение, и я хочу, чтобы это значение было новым расположением метки в приложении формы Windows. но мне говорят, что расположение метки не является переменной. objectA - это имя метки.
objectA.Location.X = (int)A.position;
objectA.Refresh();
как это сделать?
Используйте свойство Left
для изменения координаты X в Label
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(100100);
objectA.Location = new Point((int)A.position, objectA.Location.Y);
objectA.Refresh();
Местоположение - это не переменная, а просто публичное свойство. Изменение переменных через свойства - это плохая идея, если у вас нет событий, которые обновляют родителя.
Вы можете устанавливать свойства структур только в том случае, если у вас есть прямая ссылка на эту структуру:
Point loc = objectA.Location;
loc.X = (int)A.position;
objectA.Location = loc;