2016-06-07 2 views
0

저는 버튼이 있고 컨테이너 (패널)의 오른쪽에 배치하고 싶습니다. 그래서 버튼의 오른쪽 속성을 동일하게 설정하려고합니다. 컨테이너의 Left 속성 그러나이 오류가 표시됩니다 : 속성 System.Windows.Forms.Control.Right setter하지 않았습니다."System.Windows.Forms.Control.Right"속성에 setter가 없습니다

This is a MSDN link :

+0

링크를 읽었습니까? 'Right 속성은 읽기 전용입니다. Left 또는 Width 속성의 값을 변경하거나 SetBounds, SetBoundsCore, UpdateBounds 또는 SetClientSizeCore 메서드를 호출하여이 속성 값을 간접적으로 변경할 수 있습니다. – Plutonix

+0

오른쪽은 파생 값으로 간주되므로 구성 요소 중 하나 또는 둘 다를 변경해야합니다 , 즉 왼쪽 (또는 X)과 너비. – TaW

답변

0

당신은 컨트롤의 Left 속성을 사용해야합니다

var panel = new Panel(); 
panel.Size = new Size(100, 100); 

var button = new Button(); 
button.Size = new Size(20, 10); 
button.Left = panel.Size.Width - button.Size.Width; 
Left + Width라도 좋습니다로부터 계산되기 때문에 당신이 Right을 설정할 수 없습니다 이유는

는도이다 이해를 돕기 위해 :

enter image description here

+0

나는 내가 이해했다고 생각한다 : 오른쪽 속성은 왼쪽 컨테이너의 합과 너비가 동일하다. 나는? – Majid

+0

@Majid Correct. 만약 당신이 여기에 관심이 있다면 ['Control.Right.get'] (http://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/Control.cs,3637)의 소스입니다.). – Xiaoy312

0
button.left=panel.right-button.width 

을 그리고 내 폼의 상태가 극대화되면, 나는의 Form_Load 범위에서이 코드를 작성해야 : 414,오른쪽 속성이 읽기 전용이며 변경하기 위해이 같은 왼쪽 속성을 변경해야합니다.

관련 문제