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