現在、次のコードを使用してテキストボックスのサイズを見積もっています。
Dim i As Integer, j As Integer, pGr As Graphics, sz As SizeF
For i = 1 To pNumRows
For j = 1 To pWidth
sb.Append("W")
Next
If pNumRows > 1 Then
sb.Append(vbCrLf)
End If
Next
pGr = txtTextBox.CreateGraphics
sz = pGr.MeasureString(sb.ToString, pTextFont, New SizeF(10000, 10000))
pGr.Dispose()
txtTextBox.SetSize(CInt(sz.Width), CInt(sz.Height) + 80)
txtTextBox.Size = New Size(CInt(sz.Width) + 20, CInt(sz.Height) + 100)
for ループを削除し、pGr (textbox.CreateGraphics) メソッドを完全に廃止して、テキスト ボックスのサイズを正しく推定する方法があるかどうか疑問に思っていました。どんな助けでも大歓迎です。
なぜ私(実際にはコードを書いた人)がすべての「W」をループしているのか疑問に思っているなら、それは(私が思うに)「W」が文字セット全体で最大の幅と高さを持っているからです。 (コードを書いた人) は、必要な最大領域を推測しようとしています。