| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1285 人关注过本帖
标题:[求助]如何让一个文本框只能输入数字?
只看楼主 加入收藏
C_B_Lu
Rank: 1
等 级:新手上路
威 望:1
帖 子:453
专家分:0
注 册:2006-1-10
收藏
 问题点数:0 回复次数:2 
[求助]如何让一个文本框只能输入数字?
例如,我想文本框中只能输入带三位小数的数字(保留三位小数,如:1.000),整数部份最多也只允许三位(也可只有一位,如"1.234"和"123.456"都允许)。

我试过用MaskedTextBox控件,将期Mask属性设为"990.999",感觉效果不是很好。
因为当我想输入"1.234"时,会得先输入两个空格,才能输进去,要不然就成了123.4。

另外,如果用TextBox控件,然后用Regex进行验证,感觉也不是很方便,因为只有在输入完成后才可验证。

大家有没有什么好的建议??
搜索更多相关主题的帖子: 文本 数字 输入 
2007-05-07 18:48
guoxhvip
Rank: 8Rank: 8
来 自:聖西羅南看臺
等 级:贵宾
威 望:44
帖 子:4052
专家分:135
注 册:2006-10-8
收藏
得分:0 
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = e.KeyChar < '0' || e.KeyChar > '9';
if(e.KeyChar == (char)8) //可以接收退格键
e.Handled = false;
}
Handled是bool型属性,确定是否处理该事件,如果为true就处理,为false就不处理

愛生活 && 愛編程
2007-05-08 03:32
C_B_Lu
Rank: 1
等 级:新手上路
威 望:1
帖 子:453
专家分:0
注 册:2006-1-10
收藏
得分:0 

我的代码如下, 数字保留三位小数.
private void tbRate_Validating(object sender, CancelEventArgs e)
{
tbRate.Text = double.Parse(tbRate.Text).ToString();
int pos = tbRate.Text.LastIndexOf('.');
if (pos < 0)
{
tbRate.Text += ".000";
}
else
{
tbRate.Text = tbRate.Text.PadRight(tbRate.Text.Length + (3 - (tbRate.Text.Length - pos - 1), '0');
}

}

private void tbRate_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar < '0' || e.KeyChar > '9')
{
e.Handled = true;
}
if (e.KeyChar == '\b') // '\b'表示退格鍵
{
e.Handled = false;
}
if (e.KeyChar == '.')
{
if (tbRate.Text.LastIndexOf('.') >= 0) // 只允許輸入一個小數點號
{
e.Handled = true;
}
else
{
e.Handled = false;
}
}
}

[此贴子已经被作者于2007-5-9 15:25:44编辑过]


帮助那些真正需要帮助的人,是对帮助你的人最好的回报!
2007-05-09 11:18
快速回复:[求助]如何让一个文本框只能输入数字?
数据加载中...
 
   



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

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