EnableScrollBar API を使用して VScrollBar コントロールを無効にしようとしています。API を呼び出すと、問題が発生しなかったかのように返されますが、VScrollBar は再描画されません。
問題を再現するには、Vb.Net Windows フォーム プロジェクトを作成し、VScrollBar コントロールとボタンをフォームにドロップして、次のコードを貼り付けます。
<DllImport("user32.dll", CharSet:=CharSet.Auto, SetLastError:=True, ExactSpelling:=True)>
Public Shared Function EnableScrollBar(ByVal hWnd As IntPtr, ByVal nBar As Integer, ByVal value As Integer) As Boolean
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim wSBflags As UInteger = 3UI 'SB_VERT
Dim wArrows As UInteger = 3UI 'ESB_DISABLE_BOTH
Dim result As Boolean = EnableScrollBar(Me.VScrollBar1.Handle, wSBflags, wArrows)
End Sub
SendMessage を使用して再描画 (WM_REDRAW) とペイント (WM_PAINT) を送信しようとしましたが、機能しません。アイデアはありますか?
Ps:複数行のテキストボックスをドロップして同じコードを使用すると、機能します....