http://pcnetbeginners.seesaa.net/article/157147979.html
テキストボックスをクリックすると、通常はその場所にカーソルが移動して全選択にはならない。
これはwindowsの規定動作である。
どうしてもテキストボックスをクリックしたときに全選択されるようにしたい場合、以下のように、最初にクリックしたときは全選択、それ以外はその場所にカーソル移動(規定動作)とするとよい。
Public Class TextBoxEx
Inherits TextBox
''' <summary>
''' 最初のクリックの場合テキストを全選択するためのフラグ
''' </summary>
''' <remarks></remarks>
Private bFirstClick = False
Protected Overrides Sub OnMouseEnter(e As EventArgs)
bFirstClick = Not Me.Focused ' フォーカスが無いところからクリックすると「最初のクリック」
MyBase.OnMouseEnter(e)
End Sub
Protected Overrides Sub OnMouseLeave(e As EventArgs)
bFirstClick = False
MyBase.OnMouseLeave(e)
End Sub
Protected Overrides Sub OnMouseUp(e As MouseEventArgs)
' 最初のクリックの場合は全選択 ( ただし範囲選択した場合は全選択しない )
If bFirstClick And Me.SelectionLength = 0 Then
Me.SelectAll()
End If
bFirstClick = False
MyBase.OnMouseDown(e)
End Sub
End Class