多行文本框中选择文本行

多行文本框中选择文本行

 

   Option Explicit 
   Private Const EM_LINELENGTH = &HC1
   Private Const EM_LINEINDEX = &HBB
   Private Const EM_SETSEL = &HB1
  
   Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
          (ByVal hWnd As Long, ByVal wMsg As Long, _
           ByVal wParam As Long, lParam As Any) As Long

Private Sub Form_Load()
    Text1.Text = "aaaaaaa" & vbCrLf & _
                 "bbbbbbbbb" & vbCrLf & _
                 "ccccccccccc" & vbCrLf & _
                 "ddddddddddddd"
    SEL_Line Text1.hWnd, 2, 2    '第2行起选择2行
End Sub

Sub SEL_Line(ByVal hWnd As Long, ByVal whichLine As Long, ByVal howLine As Long)
'=============================chinaboyzyq 2010-04-16============================
'第一个参数是文本框的句柄
'第二个参数是从第几行开始选择(1为第一行)
'第三个参数是选择几行
'===============================================================================
    whichLine = whichLine - 1
    If whichLine < 0 Then whichLine = 0
    Dim length As Long, lc As Long, StartLine As Long, i As Long
   
    For i = whichLine To whichLine + howLine - 1
        lc = SendMessage(hWnd, EM_LINEINDEX, i, ByVal 0&)
        If i = whichLine Then StartLine = lc
        length = length + SendMessage(hWnd, EM_LINELENGTH, lc, ByVal 0&) + 2
    Next
    SendMessage Text1.hWnd, EM_SETSEL, StartLine, ByVal (StartLine + length)
       
End Sub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值