根据字符串的长度计算后修改textbox的width属性

解决方案 »

  1.   

    Option ExplicitPrivate Sub Command1_Click()
    Dim oldFont As StdFont
    Dim oldText As String
    Dim MinWidth As LongMinWidth = 120                    '考虑文本框边框的宽度
    Set oldFont = Me.Font
    Set Me.Font = Text1.Font
    Text1.Width = Me.TextWidth(Text1.Text) + MinWidth
    Text1.SelStart = 0
    Set Me.Font = oldFont
    End Sub
      

  2.   

    可以在TextBox的Change里加如下代码:Text1.width=scalex(len(text1.text),vbcharters,twips)就可以了
      

  3.   

    GetTextExtentPoint32(lngHDC, Text1.Text, lstrlenA(Text1.Text), szText)
    Text1.Width = (szText.cx + 4) * Screen.TwipsPerPixelX
      

  4.   

    得先将窗体的字体属性设置成跟文本框一样后才能用me.textwidth(text1.text)获得文本框的文本长度:Me.FontName = Text1.FontName
    Me.FontSize = Text1.FontSize
    Text1.Width = Me.TextWidth(Text1.Text) + MinWidth
      

  5.   

    Set Me.Font=Text1.Font不能把Text1的FontName和FontSize付值给Me吗?为什么要Me.FontName = Text1.FontName
    Me.FontSize = Text1.FontSize
      

  6.   

    我曾经这样做过
    用一个label控件visible=false,autosize=true
    字体与Text控件相同,将Text控件的文本赋给label的caption,label就会自动根据字符串的长的改变自身的宽度,text控件的宽度也就可以根据label的宽度变化。