关于TEXT控件在WIN2K及WIN98下Maxlength的控制

ENDING722 2003-07-18 06:17:56
我想让TEXT控件的Maxlength在30之内(中文为15)个,在WIN2000下对于中文字符
却是30!我应怎么做?

谢谢!!!!!
...全文
76 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小白兔 2003-07-29
  • 打赏
  • 举报
回复
先测试你的软件在什么系统下运行,再决定是使用哪个 MaxLenth,如何?
ENDING722 2003-07-21
  • 打赏
  • 举报
回复
大概是我没有说清楚问题(抱歉!!!)
我是要想让TEXT控件(WIN2000及WIN98)的 Maxlength 英文字为30,中文字为15.
但是在WIN2000下中文字却是30!
我知道这其中有操作系统的字符集的问题,可是应怎么解决:
在WIN2000及WIN98下中文字为15,英文字为30.

Ken920454 2003-07-18
  • 打赏
  • 举报
回复
'控制KeyPress事件
Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = F_iKeyCheck(KeyAscii, Text1.MaxLength)
'KeyAscii = F_iKeyCheck(KeyAscii, 30) 也行
End Sub

Private Function F_iKeyCheck(ByVal iKeyAscii As Integer, Optional ByVal iLength As Integer = 0) As Integer
Dim iRet As Integer
Dim i As Integer
Dim S As String

'如果对输入的长度没有限制,就取Text1的长度限制。
If iLength = 0 Then iLength = Text1.MaxLength

S = Text1.Text
S = StrConv(S, vbFromUnicode)
If LenB(S) - Text1.SelLength + LenB(StrConv(Chr(iKeyAscii), vbFromUnicode)) > iLength Then
iRet = 0
End If
F_iKeyCheck = iRet

End Function
小白兔 2003-07-18
  • 打赏
  • 举报
回复
那是操作系统的问题。呵呵,好像没办法。98 是 AscII 的代码集,而 Windows 2000 是UniCode 代码集,这个代码集所有字符都占用两个字节,包括英文字母……
penglc 2003-07-18
  • 打赏
  • 举报
回复
在 text1_change 事件里判断是否有中文字符,有几个,参考如下资料:

http://expert.csdn.net/Expert/topic/1995/1995116.xml?temp=.955044

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧