我目前正在使用以下代码来估计文本框的大小:
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”在整个字符集中具有最大的宽度和高度,所以这个人(谁编写了代码)试图猜测所需的最大面积。