学习VB.NET时,你可能会遇到VB.NET文本框问题,这里将介绍VB.NET文本框问题的解决方法,在这里拿出来和大家分享一下。VB.NET文本框没有直接提供取当前行号的功能,但我们可以有如下几种方法实现:
#t#一.用windows API函数,这也是VB的方法
先声明如下API函数,注意参数类型是用Integer,因为VB.NET的Integer是32位的:
Private Declare Function SendMessageinteger Lib "user32" Alias "SendMessageA"
(ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer,
ByVal lParam As Integer) As Integer Const EM_LINEFROMCHAR = &HC9
'计算文本框的当前行号
Friend Function LineNo(ByVal txthwnd As Integer) As Integer
'计算文本框的当前行号
'参数txthwnd是文本框的句柄(handle)
Try
Return Format$( SendMessageinteger(txthwnd, EM_LINEFROMCHAR, -1&, 0&) + 1, "##,###")
Catch ex As Exception
End Try
End Function
二.累加计算
通过计算累加每行字符总数是否大于插入点前总字符数,来确定当前行数。
- '不使用API函数
- Friend Function LineNo(ByVal sender As Object) As Integer
- '计算文本框的当前行号
- Try
- Dim txtbox As TextBox
- Dim charCount As Integer
- Dim i As Integer
- txtbox = CType(sender, TextBox)
- For i = 0 To txtbox.Lines.GetUpperBound(0) '计算行数
- charCount += txtbox.Lines(i).Length + 2 '一个回车符长度2
- If txtbox.SelectionStart < charCount Then
- Return i + 1
- End If
- Next
- Catch ex As Exception
- End Try
- End Function
网页标题:两种方法实现VB.NET文本框
当前网址:http://www.csdahua.cn/qtweb/news32/458732.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网