标题:问一个TextBox中keyPress事件的问题
只看楼主
Heroson
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-8-12
 问题点数:0 回复次数:9 
问一个TextBox中keyPress事件的问题

RT,我现在是要设置TextBox中的keyPress事件,要求做到的是,TextBox内只允许输入数字,并且数字范围在0到100之间,如果输入数字超过100,比如150,则显示还是100。

我现在代码只会写限制只输入数字,关于输入数字的最大值还不太会

private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsNumber(e.KeyChar) || (Keys)e.KeyChar == Keys.Back)
{ e.Handled = false; }
else
{ e.Handled = true; }

}


希望各位高人教我一下如何写限制数字上下限的代码

搜索更多相关主题的帖子: TextBox中 keyPress 数字 Handled KeyChar 
2007-08-31 04:17
吴尚锦
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-8-22
得分:0 

if (e.KeyChar < '0' || e.KeyChar > '99' )
{
e.Handled = true;
}
不知道对不对?

2007-08-31 09:04
卡卡艾
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:672
专家分:0
注 册:2007-4-3
得分:0 

好办,加几句代码:
在textBox2_TextChanged这个事件里写
{
if ( Convert.ToInt32(textBox2.Text)>100)
{
textBox2.Text="100";
}
}


革命尚未成功,同志仍需努力-----+++
2007-08-31 09:10
virusswb
Rank: 1
等 级:新手上路
威 望:1
帖 子:342
专家分:0
注 册:2005-8-6
得分:0 
在textBox2_TextChanged这个事件里写
{
if ( Convert.ToInt32(textBox2.Text)>100)
{
textBox2.Text="100";
}
}

如果大于100,就让它=100好了

jorden008@
2007-08-31 09:18
guoxhvip
Rank: 8Rank: 8
来 自:聖西羅南看臺
等 级:贵宾
威 望:44
帖 子:4052
专家分:135
注 册:2006-10-8
得分:0 
以下是引用卡卡艾在2007-8-31 9:10:25的发言:

好办,加几句代码:
在textBox2_TextChanged这个事件里写
{
if ( Convert.ToInt32(textBox2.Text)>100)
{
textBox2.Text="100";
}
}


愛生活 && 愛編程
2007-08-31 15:27
xyb157
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-11-21
得分:0 
以下是引用卡卡艾在2007-8-31 9:10:25的发言:

好办,加几句代码:
在textBox2_TextChanged这个事件里写
{
if ( Convert.ToInt32(textBox2.Text)>100)
{
textBox2.Text="100";
}
}

猛,只要你大于100的时候都被你给定为100,多简单的If语句啊


编程、在编程。。。。。爱学习、爱劳动才是个好孩子,老婆才会好好爱我
2007-08-31 16:52
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
if ( Convert.ToInt32(textBox2.Text)>100)
{
}
这样写的话,如果输入的不是整数,就会报错的

飘过~~
2007-08-31 17:00
卡卡艾
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:672
专家分:0
注 册:2007-4-3
得分:0 
以下是引用bygg在2007-8-31 17:00:39的发言:
if ( Convert.ToInt32(textBox2.Text)>100)
{
}
这样写的话,如果输入的不是整数,就会报错的

恩,你说的情况我考虑到了,你说对了一半,它并不会报错,因为在KeyPress里写了:
if (e.KeyChar < '0' || e.KeyChar > '9' )
{
e.Handled = true;
}
或是LZ那种方法:
if (Char.IsNumber(e.KeyChar) || (Keys)e.KeyChar == Keys.Back)
{ e.Handled = false; }
else
{ e.Handled = true; }
所以,输入小数是输不了的,自动就赋值100了.
所以,这个程序的缺点就是不能输入小数,你输入一个小数,它就会自动就赋值100.不知道楼主有没有要求需要输入小数的情况.


革命尚未成功,同志仍需努力-----+++
2007-08-31 21:11
卡卡艾
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:672
专家分:0
注 册:2007-4-3
得分:0 
呵呵,如果楼主的要求是需要输入0到100间的所以数的话,这样做:
在textBox2_KeyPress里写:
if (e.KeyChar < '0' && e.KeyChar != '.' || e.KeyChar > '9' && e.KeyChar != '.')
{
e.Handled = true;
}
然后在textBox2_TextChanged事件里写:
if ( Convert.ToDouble(textBox2.Text)>100)
{
textBox2.Text="100";
}
就可以达到要求了.呵呵..
所以这里正好也提供了两个方法,一个是输入整数的,另一个则是包括小数的.

革命尚未成功,同志仍需努力-----+++
2007-08-31 21:16
Heroson
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-8-12
得分:0 

我本身控件是不需要小数的,需要小数我还得加‘.’进去呢


顺便出现了一个新问题,异常还是被我找出来了,那就是如果textBox中为空的话则出现异常,那是因为有其他运算代码在,所以会出现异常
我现在想最好把text为空的情况下为0,眼下由于代码问题没办法分开赋值了,只有求一个将值为空变为0的代码了,


if (!(Char.IsNumber(e.KeyChar)))
{
BsHP.Text = "0";
}

我是这么写的,不过依然有错误,语法错误了,见笑了

[此贴子已经被作者于2007-9-1 0:04:42编辑过]


2007-08-31 23:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-166634-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.692993 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved