0

RichTextBox最大の高さと可変幅があります。

スクロールバーを使わずにすべてのテキストを収めるために、ボックスの幅のサイズを変更したいと思います。

それを行う方法はありますか?

4

1 に答える 1

1

コントロールにスクロール バーがあるかどうかを取得するには、次のようにします。

Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As IntPtr, ByVal nIndex As Integer) As Integer

テキストを変更した後、次のような関数を呼び出します。

Private Sub ValidateTextBox(tb As RichTextBox)
    Dim Hdl As IntPtr = tb.Handle
    Dim Style, VBar As Integer

    tb.Width = iMinWidth
    Style = GetWindowLong(Hdl, GWL_STYLE)
    VBar = Style And WS_VSCROLL

    While VBar > 0 AndAlso tb.Width < iMaxWidth
        tb.Width += 24

        Style = GetWindowLong(Hdl, GWL_STYLE)
        VBar = Style And WS_VSCROLL
    End While
End Sub

Public Const WS_VSCROLL As Integer = &H200000
Public Const GWL_STYLE As Integer = (-16)
于 2013-04-08T12:28:08.453 に答える