2012-09-24 11 views
6

예를 들어 3 행 5 열이면 TableLayoutPanel을 사용하고 있습니다. 전체 패널의 바깥 쪽 테두리 만 그립니다. 기본적으로 패널에는 사용 가능한 모든 셀에 모든 측면 테두리를 추가하는 CellBorderStyle이 있습니다. 바깥 국경 만 설정할 수있는 방법이 있습니까?TableLayoutPanel 셀의 바깥 쪽 테두리 만 그립니다.

아래 예제 코드를 제공합니다.

TableLayoutPanel tblPanel = new TableLayoutPanel; 
    tblPanel.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single; 
    Label lblName; 
    TextBox txtName; 
    Button btnAdd; 
    int colCnt = 0; 
    for(int rw =0; rw < 3; rw++) 
    { 
      lblName = new Label(); 
      lblName.Name = "mylabel" + rw.ToString(); 
      tblPanel.Controls.Add(lblName, colCnt, rw); 
      colCnt++; 

      txtName = new TextBox(); 
      txtName.Name = "mytext" + rw.ToString(); 
      tblPanel.Controls.Add(txtName, colCnt, rw); 
      colCnt++; 

      btnAdd = new Button(); 
      btnAdd.Name = "mybutton" + rw.ToString(); 
      tblPanel.Controls.Add(btnAdd, colCnt, rw); 

      colCnt = 0; 
    } 
+1

더 많은 문맥을 제공하지 않으면 좋은 대답을 얻지 못할 수도 있습니다. 너 뭐 벌써 해봤 니? –

+0

그래, 나는 그냥 그를 버렸지 만 그에게 기회를 줘 보자. – fernandoespinosa

답변

5

나는 아주 새로운 포스터입니다. 여기서 행동 강령은 여러분이 실제로 시도한 것을 보여주고 기술적 인 문제를 정확히 지적해야한다는 것입니다. 아니 그냥 그런 식으로 질문을하면 (특히 아무것도 시도하지 않은 것처럼 보이게 만드는 것들).

그건 그렇고, 당신을 도우려고 노력하면 셀 경계를 직접 그리는 것이 낫습니다. 다음과 같은 라인을 따라 뭔가의이 후 사용자 정의 : 런타임시 At design-time

: 디자인 타임에서

public TableForm() { 
     InitializeComponent(); 
     this.tableLayoutPanel.CellPaint += tableLayoutPanel_CellPaint; 
    } 

    private void tableLayoutPanel_CellPaint(object sender, TableLayoutCellPaintEventArgs e) { 
     e.Graphics.DrawLine(Pens.Black, e.CellBounds.Location, new Point(e.CellBounds.Right, e.CellBounds.Top)); 
    } 

At runtime

+3

그러한 행동 강령은 없습니다. 이것은 Q & A 사이트입니다. 다른 사람들이 시간 낭비를 피할 수있게 도와주는 정보의 지식 기반이되기위한 것입니다. 귀하의 소위 행동 규범을 언급하는 FAQ를 알려주십시오. –

+0

잘못 받아들이지 마십시오. ''이제 약간의 주제를 벗어나 게으르지 않고 가난하게 만들어진 사람이라면 누구나 질문을 할 수 있습니다 ... 너무 존중하지 않을 것 같아서 ... 대답이 적습니다. 코드 열정이 여기에 존경할만한 유일한 것입니다. '' – fernandoespinosa

+0

나는 그 질문의 편집 내역을 체크 아웃했다. 이제 나는 왜 당신이 원래의 질문에 흥분하지 않았는지 알아 봅니다. :-) –

2

TableLayOutPanel 자체가 CellBorderStyle 제외 테두리 속성을 지원하지 않는 네가 원하는게 아니야.

TableLayOutPanel을 Panel 컨트롤에 배치하고 TableLayOutPanel의 Dock 속성을 Fill으로 설정하는 것이 좋습니다.

다음 설정 당신이 원하는 무엇을 패널의의 BorderStyle (FixedSingle 또는 Fixed3D)

3

TableLayoutPanel은 실제로 당신이 원하는 어떤 BorderStyle 속성을 지원하지 않습니다. 예를 들어 :

tableLayoutPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; 

https://msdn.microsoft.com/en-us/library/system.windows.forms.tablelayoutpanel.borderstyle(v=vs.110).aspx

그것은이로 장식되어 있습니다 :

[Browsable(false)] 
[EditorBrowsable(EditorBrowsableState.Never)] 

그래서 인텔리이 광고를 표시하지 않습니다,하지만 문서화하고 그것을 작동합니다. 왜 탐색 할 수 없는지에 대한 통찰력이 없습니다.

+0

이 정보를 제공해 주셔서 감사합니다. 그럴 것 같지도 않은 간단한 해결책입니다! –

관련 문제