テキストボックスのクリック時に全選択にする動作

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