vb的文本框如何实现只允许从第二行开始输入?

紧急求助,vb的文本框如何实现只允许从第二行开始输入

做一个文本框变动事件,后面代码如下:
if left(textbox1.text,1)<>vbcrlf then
msgbox "请在第二行开始输入"
textbox1.text= vbcrlf '直接给一个回车
end if
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-23
先检查文本框有无文字,没有的话就在第一个输入字符在代码中加上一个隐藏的换行符。如果已有,就正常输入。
第2个回答  2020-04-25
Private Const EM_GETSEL = &HB0
Private Const EM_LINEFROMCHAR = &HC9
Private Const EM_LINEINDEX = &HBB
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

Public Sub getCaretPos(ByVal texthwnd As Long, lineno As Long, colno As Long)
Dim i As Long, j As Long
Dim lparam As Long, wparam As Long
Dim k As Long
i = SendMessage(texthwnd, EM_GETSEL, wparam, lparam)
j = i / 2 ^ 16
lineno = SendMessage(texthwnd, EM_LINEFROMCHAR, j, 0)
lineno = lineno + 1
k = SendMessage(texthwnd, EM_LINEINDEX, -1, 0)
colno = j - k + 1
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim row As Long, col As Long
getCaretPos Text1.hWnd, row, col
If row = 1 And KeyAscii <> 13 Then
KeyAscii = 0
MsgBox "请从第二行输入"
End If