在很多文字编辑器中,都可以告诉您,目前您的光标是在文字编辑器的第几行,我们也来实作一下!
在 form 中放入一个 textbox 并将 multiline 属性设为 true,放入一个 label
用来显示目前光标所在的行数,在表单声明区中加入以下声明及模组:
const em_linefromchar = &hc9
function lineno(txthwnd as long) as long ′呼叫这个模组时要导入的是 textbox 的 hwnd sub text1_change() private sub text1_click() private sub text1_keyup(keycode as integer, shift as integer)
private declare function sendmessagelong lib "user32" alias "sendmessagea"
_
(byval hwnd as long, _
byval wmsg as long, _
byval wparam as long,
_
byval lparam as long) as long
on local error resume
next
lineno = sendmessagelong(txthwnd, em_linefromchar, -1&, 0&) +
1
lineno = format$(lineno, "##,###")
end function
′实际使用时,必须在 textbox
的以下几个事件中呼叫这个模组,才会完全正确:
′1. change事件:输入资料时可侦测计算
′2. click
事件:用鼠标移动光标时可侦测计算
′3. keyup 事件:用上下左右键移动光标时可侦测计算
label1 = lineno(text1.hwnd)
end sub
label1 = lineno(text1.hwnd)
end sub
label1 =
lineno(text1.hwnd)
end sub