2013-02-21 7 views
3

Windows C#에서 작업 중입니다.TableLayoutPanel의 모든 행의 행 높이 수정

  1. TableLayoutPanel의 크기가 고정되어

    첫째, 물건들은 다음과 같다 나의 필요에 따라 변경 될 수 없습니다.

  2. 총 열 수는 고정되어 있습니다.

는 지금, 나는 다음 3 ~ 4 항목에 대해 잘 작동하는 모든 행을하지만 100.0FPercentRowStyle 속성을 설정하면 행을 증가로 수정 높이를 설정하고 싶지만, 4-5 항목 후 한 행의 컨트롤이 다른 행의 컨트롤을 덮어 씁니다.

나는 이것을 더 많이 검색했지만 적절한 답변을 얻을 수 없습니다. 또한 작동하지 않더라도 AutoSize, Percent, Absolute 속성을 RowStyle으로 시도했습니다.

그럼 어떻게해야합니까? 이것을 어떻게 할 수 있습니까?

궁극적으로 Windows C#의 DataGridView과 같은 기능을 수행하려고합니다. 텍스트 상자는 4-5 #을 위해 잘 작동하는

내가 윈폼에서 일하고 있어요

... 샘플 코드가 여기에있다 ..

int cnt = tableLayout.RowCount = myDataTable.Rows.Count; 

tableLayout.Size = new System.Drawing.Size(555, 200); 

for (int i = 1; i <= cnt; i++) 
{ 

    Label lblSrNo = new Label(); 
    lblSrNo.Text = i.ToString(); 

    TextBox txt = new TextBox(); 
    txt.Text = ""; 
    txt.Size = new System.Drawing.Size(69, 20); 

    tableLayout.Controls.Add(lblSrNo, 0, i - 1); 
    tableLayout.Controls.Add(txt, 1, i - 1); 
} 

tableLayout.RowStyles.Clear(); 

foreach (RowStyle rs in tableLayout.RowStyles)     
    tableLayout.RowStyles.Add(new RowStyle(SizeType.AutoSize)); 

레이블과 사전에

감사합니다 .... #of 행 (이 경우, for 루프의 변수 cnt)이 증가 할 때마다 하나의 컨트롤이 다른 컨트롤을 덮어 쓰는 행이 서로 겹쳐 쓰여집니다 ... 나는 TableLayoutPanel 컨트롤을 끌어다 놓아서 하나의 행만 만들었습니다 수동으로 2 열.

그래서 어떻게하는지 알려주세요.

+0

이 WPF입니까? WinForms? 이 질문을 개선하기 위해 많은 일을 할 수 있다고 생각합니다. 코드는 어때? –

+0

@GrantBirchmeier 안녕하세요, .. 샘플 코드가 첨부되어 있으므로 확인하고 문제가 무엇인지 말해 주시겠습니까 ?? 감사합니다 –

+0

죄송합니다, WinForms을 모르겠습니다. 질문에 "winforms"태그를 추가 했으므로 다른 Winforms 개발자도이 코드를 볼 수 있습니다. –

답변

6

나는 여전히 tableLayoutPanels에 익숙하지 만, 코드 하단에서 컬렉션의 모든 행 스타일을 지우는 것으로 나타났습니다. 그런 다음 foreach 루프에서 반복을 시도하고 있습니다.

tableLayout.RowStyles.Clear(); //now you have zero rowstyles 

foreach (RowStyle rs in tableLayout.RowStyles) //this will never execute 
    tableLayout.RowStyles.Add(new RowStyle(SizeType.AutoSize)); 

대신을 시도해보십시오

당신은이했다. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

편집

TableLayoutRowStyleCollection styles = 
    tableLayout.RowStyles; 
foreach (RowStyle style in styles){ 
    // Set the row height to 20 pixels. 
    style.SizeType = SizeType.Absolute; 
    style.Height = 20; 
} 

: 그냥 N 행을 추가하는 당신을 통해 반복 할 수 N의 rowstyles를 추가하지 않습니다 것을 깨달았다. 무슨 일이 일어나고있는 것은 N 행을 추가하고 있지만 행 스타일이없는 것입니다.

난 당신이 Clearst() 할 수있는 rowstyles 다음 그냥 N rowstyles 당신이 이미하고있는 것처럼 추가 할 수 있습니다.