2014-02-19 3 views
2

내 응용 프로그램 중 하나에서 텍스트 상자와 텍스트 상자 너비 내에 텍스트를 배치하고 높이를 텍스트 길이에 따라 변경해야합니다. 그래서 나는VB.net에서 텍스트 상자 안에 텍스트 맞추기 windows 양식

을 (this link 참조).

TextSize = gr.MeasureString(textcontent, TextFont) 
는 TextContent 텍스트의 내용과 TextFont 글꼴의 유형입니다

을 사용하지만 텍스트 문자의 많은 수를 포함하는 경우 (이 폼 안에 약 2 라인을 필요로 말을하고 텍스트가 한 줄에 들어 가지 않으면) 높이를 설정해야합니다. 그래서 나는 주어진 텍스트를 위해 텍스트가 텍스트 상자 안에 적절히 들어가길 원합니다. 또한 큰 텍스트의 경우 여러 줄이있는 경우 첫 줄 끝과 두 줄 사이에 여유 공간이 없어야합니다. 어떻게 할 수 있니?

답변

2

일반 TextBox 컨트롤을 사용하면 속성이 제한적이므로 더 어려워 질 것입니다. 그래서하지만 더 많은 기능을 가진이 텍스트 상자는 여전히 대신 이후 RichTextBox 컨트롤을 사용하여 ... 그래서 양식에 RichTextBox 컨트롤을 넣어이 코드를 추가하려고하는 것이 좋습니다 수있는 자유를 ... 촬영했습니다

Private Sub RichTextBox1_ContentsResized(sender As Object, e As System.Windows.Forms.ContentsResizedEventArgs) Handles RichTextBox1.ContentsResized 
    RichTextBox1.Height = e.NewRectangle.Height + 12 
End Sub 
1

이런 식으로하십시오 ...

  1. 양식의 크기 또는 원하는대로 텍스트 상자의 최대 너비 (Mx)를 결정하십시오. 당신이하고있는 같은 문자열에 필요한
  2. 계산 길이 L ... L보다 작거나 MX에 동일한 경우 L은 MX 다음 높이 요인보다 큰 경우 TextSize = gr.MeasureString(textcontent, TextFont)
  3. 다음 L.
  4. 에 텍스트 상자의 너비를 변경 (Hf) = L/Mx이다. txtBox1.Multiline = true로 설정하고 txtBox1 높이를 txtBox1.Height * Hf로 변경하고 txtBox1 width = Mx
을 설정하십시오.
관련 문제