값을 반환하는 메서드가 있고이 값을 Windows 양식 응용 프로그램에서 레이블의 새 위치로 지정합니다. 라벨의 위치가 변수가 아니라고 들었습니다. objectA는 레이블의 이름입니다.C#의 레이블 위치 업데이트?
objectA.Location.X = (int)A.position;
objectA.Refresh();
어떻게하면됩니까?
값을 반환하는 메서드가 있고이 값을 Windows 양식 응용 프로그램에서 레이블의 새 위치로 지정합니다. 라벨의 위치가 변수가 아니라고 들었습니다. objectA는 레이블의 이름입니다.C#의 레이블 위치 업데이트?
objectA.Location.X = (int)A.position;
objectA.Refresh();
어떻게하면됩니까?
사용 Left
속성이 나에게 작동하는 Label
objectA.Left = 100;
위치 속성은 값 유형 인 Point 유형입니다. 따라서이 속성은 위치 값의 복사본을 반환하므로이 복사본에 X를 설정하면 레이블에 아무런 영향을 미치지 않습니다. 컴파일러는 오류를보고 수정할 수 있도록 오류를 생성합니다. 대신 그 작업을 수행 할 수 있습니다
는objectA.Location = new Point((int)A.position, objectA.Location.Y);
(새로 고침에 대한 호출은 쓸모가)
objectA.Location = new Point((int)A.position, objectA.Location.Y);
objectA.Refresh();
위치에는 변수, 단지 공용 속성입니다. 부모를 업데이트하는 이벤트가 없으면 속성을 통해 변수를 변경하는 것은 좋지 않습니다.
좌표 X 변경
this.label1.Location = new Point(10, 10);
심지어 새로 고침 정도 SuspendLayout 등
를 호출 할 필요는 없습니다
이게 도움이 될 것입니다.
this.label1.Location = new Point((int)A.position, (int)A.otherpos);
objectname.Location = System.Drawing.Point (100,100);
그 구조체에 대한 직접 참조가있는 경우에만 구조체의 속성을 설정할 수 있습니다
Point loc = objectA.Location;
loc.X = (int)A.position;
objectA.Location = loc;
이 그것을 사용하지 않는 어떤 이유가 .... 가장 간단한 것 같습니다를? – avaleske
결국 Left 속성과 Location 속성은 모두 SetBounds 메서드를 내부적으로 사용합니다. Left 속성의 장점은 새로운 Point 개체를 만들 필요가 없다는 것입니다. 강렬하게 수행하면 마녀가 좀 더 빠를 수도 있습니다 ... –