winform中验证文本框不能超过6位,以下代码在弹出提示后按Backspace会再提示一次有什么解决方法?

TextBox的MaxLength=6privatevoidtextBox1_KeyPress(objectsender,KeyPressEventArgse){if(t... TextBox的MaxLength =6
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (textBox1.Text.Length == textBox1.MaxLength)
{
MessageBox.Show("内容长度到达最大限度");
//如果这里加个textBox1.text = "";还是会出现多输入的 那个字符在那里
return;
}
}
展开
 我来答
crb20003
2012-07-20 · 超过17用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:33.5万
展开全部
因为你这个事件是实时捕获键盘上输入的信息;到弹出一次后,说明你输入的字符已经等于6了。
你再输入任何键都会导致再次触发该函数;所以会再提示一次;
解决办法有很多,这里推荐一种,不用MessageBox弹出;
你可以在文本框后面放一个label,将错误信息显示在label里;平时label就啥都不显示;
这样在用户体验上也感觉好一些,不用弹个错误,还要用户去点。。。麻烦。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Jacke_159
2012-07-20 · TA获得超过196个赞
知道小有建树答主
回答量:128
采纳率:100%
帮助的人:105万
展开全部
TextBox 控件有个textchanged 事件。加上这个事件,当你修改文本框里面内容时,你就可以在里面再次调用这个判断方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1f1a785cf
2012-07-20 · 超过18用户采纳过TA的回答
知道答主
回答量:88
采纳率:0%
帮助的人:56.3万
展开全部
通过e来判断按下的如果是 Backspace 就不弹出窗口啊,你可以用MessageBox.Show(e.KeyChar);来获得按下的键的字符码 。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dingxu_ren
2012-07-20
知道答主
回答量:34
采纳率:0%
帮助的人:20.4万
展开全部
在KeyPress里用char.IsControl(e.KeyChar)先判断一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式