十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
VB.NET有很多值得学习的地方,这里我们主要介绍VB.NET Integer,包括介绍VB.NET的文本框等方面。VB.NET的文本框没有直接提供取当前行号的功能,但我们可以有如下几种方法实现:

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的梁平网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
一.用windows API函数,这也是VB的方法
先声明如下API函数,注意参数类型是用VB.NET 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
【编辑推荐】