vb.net文本框如何限制中英文输入长度,小白求教

Violet_Ice紫冰 2017-01-25 01:00:04
System.Text.Encoding.Default.GetByteCount("内容")

有人给我这么一段代码,说是可以限制。。。然而我搞不懂。

我要中文为2字符,英文数字为1字符。总字符数到12后不能再输入。
这个能不能搞出来。
最好是把一整段代码发来。
从Private Sub 开始
到End Sub 结束
...全文
372 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
雨露天泽 2018-05-23
  • 打赏
  • 举报
回复
可以用属性就直接限制了。
kxyzjm62 2017-01-25
  • 打赏
  • 举报
回复
http://blog.csdn.net/cc_net/article/details/2896317
stherix 2017-01-25
  • 打赏
  • 举报
回复
应该写在KeyPress事件里 判断当前字节数大于等于12并且按下的键是非控制字符 就取消这个按键
Sub TextBox1_KeyPress(object sender, KeyPressEventArgs e)

     if (System.Text.Encoding.Default.GetByteCount(TextBox1.Text) >= 12) and not char.IsControl(e.KeyChar) then
          e.Handled = true;
     end if

end sub
bwangel 2017-01-25
  • 打赏
  • 举报
回复
这个应该在文本框的TextChanged事件中处理。 Sub TextBox1_TextChanged(object sender, EventArgs e) if System.Text.Encoding.Default.GetByteCount(TextBox1.Text) >= 12 THEN MessageBox.Show("MaxLength is 12") end if end sub VB不会,大致如此。
Violet_Ice紫冰 2017-01-25
  • 打赏
  • 举报
回复
引用 2 楼 stherix 的回复:
应该写在KeyPress事件里 判断当前字节数大于等于12并且按下的键是非控制字符 就取消这个按键
Sub TextBox1_KeyPress(object sender, KeyPressEventArgs e)

     if (System.Text.Encoding.Default.GetByteCount(TextBox1.Text) >= 12) and not char.IsControl(e.KeyChar) then
          e.Handled = true;
     end if

end sub
大于等于12会超过。11会好点。如果有单数的英文数字+末尾中文那会变成13字符。估计是解决不掉了。
 If System.Text.Encoding.Default.GetByteCount(m1.Text) > 11 And e.KeyChar <> Chr(8) Then
            e.Handled = True
        Else
            e.Handled = False
        End If

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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