- 題名: テキストボックスにオートスクロールを作る方法
- 日時: 2009/09/30 19:10:42
- ID: 25467
- この記事の返信元:
- (なし)
- この記事への返信:
- [25468] Re[1]: テキストボックスにオートスクロールを作る方法2009/09/30 22:57:49
- ツリーを表示
お疲れ様です。
とりあえず、Graphics.MeasureStringを使う方法しか
思いつきませんでした。
随所に手抜きしており完璧ではありませんが、
結構いい感じなので、試してみてください。
Public Class TextBoxEx
Inherits TextBox
Public Sub New()
Me.Multiline = True
End Sub
Protected Overrides Sub OnSizeChanged(ByVal e As System.EventArgs)
Me._helperSetScrollBar()
MyBase.OnSizeChanged(e)
End Sub
Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
Me._helperSetScrollBar()
MyBase.OnTextChanged(e)
End Sub
Private Sub _helperSetScrollBar()
Dim w As Integer = Me.ClientSize.Width
Select Case Me.ScrollBars
Case Windows.Forms.ScrollBars.Both, Windows.Forms.ScrollBars.Vertical
w -= SystemInformation.VerticalScrollBarWidth
Case Else
' 何もしない
End Select
Using g As Graphics = Me.CreateGraphics
Dim sz As SizeF = g.MeasureString(Me.Text, Me.Font, w)
If sz.Height > Me.ClientSize.Height Then
Me.ScrollBars = Windows.Forms.ScrollBars.Vertical
Else
Me.ScrollBars = Windows.Forms.ScrollBars.None
End If
End Using
End Sub
End Class
分類:[.NET]
いつも見させて頂いています。
またまた初心者質問で申し訳ないですが
フォームに配置したテキストボックスにオートスクロールを付ける方法は
どのようにすればよいでしょうか?
ちなみにフォームのサイズ変更はしたくないので固定にしました。
お願い致します。