현재의 투표 결과가 매우 적절하다고 생각되지만, 필요한 것보다 약간 난해하게 보입니다. 속성을 설정하기 전에 컨트롤을 tableLayoutPanel에 추가해야합니다.
Visual Studio (2013 및 가능성있는 다른 버전)는 이러한 속성을 컨트롤의 일부로 표시합니다. 실제로는 tableLayoutPanel의 일부입니다.
설명 :
tableLayoutPanel.Controls.Add(**control**, x, y)
tableLayoutPanel.SetColumnSpan(**control**, '# of cols to span')
예 :
tableLayoutPanel1.Controls.Add(**button1**, 0, 0);
tableLayoutPanel1.SetColumnSpan(**button1**, 2);
tableLayoutPanel1.SetRowSpan(**button1**, 3);
결과 :이 공간을 '점유'A 버튼. (아직도 '커버'의 공간, 그것은 것 '예비'그것이 할지라도. 지역을 커버하기에 충분한 크기를 제공한다.)
O O X X X
O O X X X
O O X X X
X X X X X
X X X X X
것이다 그리드의 크기보다 스팬 더 큰 설정. . : 그리드 크기를 변경하지 마십시오. 그리드의 크기에 맞게 숫자를 자르거나 편집하지 마십시오. 컴파일시 오류가 발생하지 않습니다.
스팬이 현재 격자 (tableLayoutPanel) 최대 크기로 설정된 것처럼 작동/수행합니다. 이는 TLP/격자 크기가 변경된 경우에만 관련이 있습니다.
두 개의 컨트롤을 동일한 그리드 위치에 프로그래밍 방식으로 추가하면 그리드의 첫 번째 컨트롤이 해당 위치를 유지합니다. 이후에 추가 된 컨트롤은 다음 셀 블록으로 푸시됩니다. '스팬'이 추가되면 사용 된 셀 블록을 처리하고 사용하지 않는 셀 블록을 계속 검색합니다.
예는 : LABEL1, 라벨 2 및 LABEL3은 0,0에 추가됩니다.
- LABEL1 0,0
- 라벨 2에 나타난다 : 0,1
- 을 LABEL3 : 0,2
예 2 : 라벨 1 행 간격을 가지고 2.
- LABEL1는 : 0,0
- 라벨 2 : 더 후 0.3 올바른 격자 점과 스팬을 선택한 후
을 수행 할 수 있습니다 : 0,2
LABEL3로 이전 도킹 및 앵커 속성을 사용하여 레이아웃을 최적화하십시오.
위대한 코드입니다. Visual Studio Designer가 나를 오도합니다. 나는 button1 속성을 찾고 있었고, button1을 toolstippanel 항목으로 변환하려고 시도 했었습니다. –
비주얼 디자이너 대신 Form.Designer.cs를 살펴본 경우 솔루션을 직접 찾을 수있었습니다. ;-) – Oliver
나는 그것이 오래된 게시물 인 것을 알고있다. 그러나 C#에서 "yoda 조건"을 수행 할 필요가 없다는 것을 지적하고 싶다. (그리고 만약 여러분이 boolean을 사용하여 실수를하고 비교 대신에 할당을한다면, 다른 타입으로 생성하는 에러와는 반대로 컴파일러 경고를 생성한다고 믿습니다.) – MiffTheFox