2

私のアプリケーションの1つでは、テキストボックス内にテキストを配置する必要があり、テキストボックスの幅と高さはテキストの長さに応じて変更する必要があります。だから私は使用しています

TextSize = gr.MeasureString(textcontent, TextFont)

ここで、textcontent はテキストの内容で、TextFont はフォントの種類です (このリンクを参照してください) 。

しかし、テキストに多数の文字が含まれている場合、フォーム内に約2行が必要であると言う場合(テキストが1行に収まらない場合)、高さも設定する必要があります。したがって、特定のテキストのテキストボックス内にテキストが適切に収まるようにします。また、複数行の場合 (大きなテキストの場合) は、最初の行の終わりと 2 行目の間に余分なスペースがあってはなりません。では、どのようにそれを行うことができますか?

4

2 に答える 2

2

プロパティが制限されているため、通常の TextBox コントロールを使用すると難しくなります。そのため、RichTextBox コントロールはまだ 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
于 2014-02-19T07:34:25.753 に答える
1

このようなことをして...

  1. フォームのサイズに応じて、または必要に応じて、テキストボックスの最大幅 (Mx) を決定します。
  2. あなたがやっているように、文字列に必要な長さ L を計算します..TextSize = gr.MeasureString(textcontent, TextFont)
  3. L が Mx 以下の場合、テキストボックスの幅を L に変更します。
  4. L が Mx より大きい場合、高さ係数 (Hf) = L/Mx。txtBox1.Multiline = true に設定し、txtBox1 の高さを txtBox1.Height * Hf に変更し、txtBox1 の幅 = Mx に設定します。
于 2014-02-19T09:13:02.293 に答える