看看我最近写的根据宽度自动换行的代码: Function TxtFix(StrText As String, MaxWidth As Long) As String Dim i As Long, j As Long Dim StrLeft As String, TxtTemp As String TxtTemp = StrText TxtFix = "" For i = Len(TxtTemp) To 1 Step -1 For j = Len(TxtTemp) To 1 Step -1 If UserControl.TextWidth(Left(TxtTemp, j)) <= MaxWidth Then StrLeft = Left(TxtTemp, j) TxtTemp = Right(TxtTemp, Len(TxtTemp) - j) If TxtFix = "" Then TxtFix = StrLeft Else TxtFix = TxtFix & vbCrLf & StrLeft End If Exit For End If Next j Next i End Function
Function TxtFix(StrText As String, MaxWidth As Long) As String
Dim i As Long, j As Long
Dim StrLeft As String, TxtTemp As String
TxtTemp = StrText
TxtFix = ""
For i = Len(TxtTemp) To 1 Step -1
For j = Len(TxtTemp) To 1 Step -1
If UserControl.TextWidth(Left(TxtTemp, j)) <= MaxWidth Then
StrLeft = Left(TxtTemp, j)
TxtTemp = Right(TxtTemp, Len(TxtTemp) - j)
If TxtFix = "" Then
TxtFix = StrLeft
Else
TxtFix = TxtFix & vbCrLf & StrLeft
End If
Exit For
End If
Next j
Next i
End Function