2016-12-15 1 views
2

TabelLayoutPanel입니다. Visual Studio 디자이너를 사용하여 Form1에 추가하고 Dock 속성을 Fill으로 설정합니다. 나는 Dock 속성을 사용하여 크기를 설정에도 불구하고, Size 속성은 또한컨트롤이 C# Winforms의 부모 컨트롤에 도킹되어있는 경우 디자이너가 컨트롤의 "Size"속성을 설정하는 이유는 무엇입니까?

this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; 
this.tableLayoutPanel.Size = new System.Drawing.Size(1000, 800); 

이유는 무엇입니까 Form1.Designer.cs에 설정되어 있습니까? 왜 디자이너가이 라인을 추가합니까? Dock 속성이 충분하지 않습니까? 이를 바탕으로 TableLayoutPanel을 동적으로 생성하면 DockSize을 모두 설정해야합니까?

+0

'크기'를 설정할 필요가 없습니다. '독 (Dock) '설정으로 충분합니다. –

+0

@RezaAghaei - 그러면 VS가 자동으로 VS를 추가하는 이유는 무엇입니까? – Sipo

+0

이제 커튼 뒤에있는 것을 그만 둡니다. 노인이 아니라는 것을 알게 된 마법사입니다. – MickyD

답변

1

Size을 설정할 필요가 없습니다. Dock으로 설정하면 충분합니다.

디자이너는 기본값과 다른 값을 갖는 모든 속성을 serialize합니다. Dock 속성을 설정하면 Size이 변경되므로 디자이너도이 설정을 serialize합니다.

DockNone으로 설정하면 나중에 직렬화 된 크기가 사용됩니다. 또한 런타임에 도킹 된 컨트롤의 크기를 설정해도 아무런 영향이 없습니다.

+0

** 참고 : ** 컨트롤에서 도크를 제거하면 컨트롤은 항상 수동으로 설정된 마지막 크기를 사용합니다.따라서 도킹 ​​된 컨트롤의 크기를 런타임에 설정하면 도크를 제거하면 해당 크기가 사용되며, 그렇지 않으면 직렬화 된 크기 (마지막으로 수동으로 설정된 크기)가 사용됩니다. –

1

디자이너가이 줄을 추가하는 이유는 무엇입니까?

이는 컨트롤 설계자의 내부 작업의 결과입니다. Visual Studio 디자이너는 기본값으로 설정되지 않은 모든 속성을 사용합니다. 기본값은 Sizeboils down to the default value of Control.Size이며 지정되지 않았습니다. 따라서 디자이너가 생성 한 것은 이고 항상입니다. 예를 들어 TabStop을 기본값으로 지정하면 디자이너에서 false으로 설정하면 코드가 생성됩니다.

TableLayoutPanel의 시각적 최종 결과에 어떤 영향을 줍니까? 번호 :

관련 문제