I have a method that returns a value, and I want this value to be the new location of a label in a windows form application. but I\'m being told that a label\'s location is
Use the Left
property to change X coordinate of a Label
objectA.Left = 100;
You can only set properties of structs if you have a direct reference to that struct:
Point loc = objectA.Location;
loc.X = (int)A.position;
objectA.Location = loc;
the Location property is of type Point, which is a value type. Therefore, the property returns a copy of the location value, so setting X on this copy would have no effect on the label. The compiler sees that and generates an error so that you can fix it. You can do that instead :
objectA.Location = new Point((int)A.position, objectA.Location.Y);
(the call to Refresh is useless)
This works to me
this.label1.Location = new Point(10, 10);
You even do not need to call Refresh or SuspendLayout etc.
so this should help you
this.label1.Location = new Point((int)A.position, (int)A.otherpos);
objectA.Location = new Point((int)A.position, objectA.Location.Y);
objectA.Refresh();
Location is no a variable, just a public Property. Changing variables through properties is a bady idea unless you have events that update the parent.
objectname.Location = System.Drawing.Point(100,100);