2009-11-11 5 views
0

텍스트 상자 컨트롤에서 CanGrow 속성을 찾을 수 없습니다. 이는 다른 컨트롤에서 일반적으로 발생하며 더 많은 데이터를 분석하도록 컨트롤을 확장합니다. 어쨌든 TextBox에서이 기능을 사용 하시겠습니까?Winform Textbox CanGrow?

답변

0

글쎄, 나는이 함께했다 :

Private Sub TextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox.TextChanged 
     'check to see if textbox has text 
     If (TextBox.TextLength > 0) Then 
      'resize height of textbox by count of lines (plus add some padding) 
      TextBox.ClientSize = New Size(TextBox.ClientSize.Width, Convert.ToInt32((TextBox.Lines.Length * TextBox.Font.Height) + (TextBox.Font.Height * 0.5))) 
     Else 
      'resize to one line height (plus padding) 
      TextBox.ClientSize = New Size(TextBox.ClientSize.Width, Convert.ToInt32(TextBox.Font.Height + (TextBox.Font.Height * 0.5))) 
     End If 
End Sub 

참고 :이 단어 워프 작동하지 않습니다.

0

저는 CanGrow에 익숙하지 않습니다. 아마 앵커 부동산을 찾고 있니?

0

어쨌든 TextBox에서이 기능을 사용 하시겠습니까?

글쎄, 그렇긴하지만 수동으로 수행해야 할 수도 있습니다. Graphic.MeasureString() 함수는 너비를 올바르게 설정하기 위해 찾고있는 함수일 수 있습니다.

MeasureSting에는 여러 줄 문자열 측정에 문제가있을 수 있습니다.

0

위쪽, 왼쪽, 아래쪽, 오른쪽으로 앵커 속성을 설정하면 컨트롤의 크기가 커질수록 컨트롤이 커집니다.

더 나은 옵션은 도킹을 사용하는 것입니다. 나는 일반적으로 클라이언트에 도킹 된 패널 레이아웃을 설정 한 다음 패널에 크기 조정을 원하는 컨트롤을 클라이언트에 도킹시키고 컨트롤을 클라이언트에 도킹하도록 설정합니다.

+0

전체 양식을 작성하려는 경우에만 적합합니다. 나는하지 않는다. 그러나 매우 긴 줄이있는 경우 텍스트 상자를 줄 바꿈하여 확장해야합니다. – Alex