- 題名: テキストボックスにオートスクロールを作る方法
- 日時: 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]
いつも見させて頂いています。
またまた初心者質問で申し訳ないですが
フォームに配置したテキストボックスにオートスクロールを付ける方法は
どのようにすればよいでしょうか?
ちなみにフォームのサイズ変更はしたくないので固定にしました。
お願い致します。