VB.net关于Textbox文本控件全选的小技巧

这篇博客介绍了如何在VB.NET中实现TextBox文本控件的全选功能。通过跟踪点击次数、光标位置和是否全选的标志,实现单击和双击选择全部文本的智能行为。当用户再次点击同一位置或在文本末尾点击时,文本将被全选。此外,失去焦点时清空计数器,以保持功能的正确性。

#Region "搜索框的全选"

 

    Dim counter As Integer = 0 '点击次数

    Dim isSelectAll As Boolean = False '是否全选

    Dim selectPoint As Integer = 0  '当前光标位置

 

    Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Click

        counter += 1

 

        If counter = 1 Then '判断是否首次点击

            selectPoint = TextBox1.SelectionStart

            TextBox1.SelectAll()

            isSelectAll = True

        ElseIf counter > 1 Then

            If TextBox1.SelectionLength = 0 Then '判断选择字符的长度是否为0

                If TextBox1.SelectionStart = selectPoint Then '判断是否点击上次同一位置

                    If isSelectAll = True Then

                        isSelectAll = False

                    Else

                        TextBox1.SelectAll()

                        isSelectAll = True

                    End If

                Else

                    If TextBox1.SelectionStart = TextBox1.TextLength AndAlso isSelectAll = False Then '判断光标位置在最末

                        TextBox1.SelectAll()

                        isSelectAll = True

                    Else

                        selectPoint = TextBox1.SelectionStart '不是上次同一位置,则记录当前位置

                        isSelectAll = False

                    End If

 

                End If

            End If

        End If

    End Sub

 

    Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus

        counter = 0

    End Sub

 

    Private Sub TextBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.DoubleClick

        isSelectAll = True

    End Sub

 

#End Region

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值