查看: 74|回复: 2

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

[复制链接]

5416

主题

5416

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
16258
发表于 2020-6-28 10:19:36 | 显示全部楼层 |阅读模式
紧急求助,vb的文本框如何实现只允许从第二行开始输入
回复

使用道具 举报

0

主题

1764

帖子

179

积分

注册会员

Rank: 2

积分
179
发表于 2020-6-28 10:20:03 | 显示全部楼层
先检查文本框有无文字,没有的话就在第一个输入字符在代码中加上一个隐藏的换行符。如果已有,就正常输入。
回复 支持 反对

使用道具 举报

0

主题

1864

帖子

198

积分

注册会员

Rank: 2

积分
198
发表于 2020-6-28 10:20:36 | 显示全部楼层
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
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 在线注册

本版积分规则

QQ|手机版|Archiver|我要投稿|洛阳IT论坛 ( 豫ICP备18021590号 )|网站地图

GMT+8, 2020-9-22 03:45 , Processed in 0.154039 second(s), 24 queries .

Powered by 洛阳IT论坛网 X3.2

© 2018-2025 China Inc.

快速回复 返回顶部 返回列表