webdn
 
  首页     免费截图     VIP会员区     广告Banner     技术文档     网站模板  
网站截图,网站每日新 !
虚拟主机
网页模板

首页 >> WebDN 文档 >> 网络编程 >> ASP.net 技术资料 >> Page 23 >> 限定文本输入为金额(money)类型

 

限定文本输入为金额(money)类型

【摘 要】写了一小段程序,用来控制textbox的输入数据为money类型,也就是123.45的格式.不过还不是太完善,拿出来共同研究吧。


 写了一小段程序,用来控制textbox的输入数据为money类型,也就是123.45的格式.不过还不是太完善,拿出来共同研究吧.

  不说废话了,贴代码

...
this.textbox1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textbox1_KeyPress);
...
private void textbox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if ((e.KeyChar< 48 || e.KeyChar > 57) && e.KeyChar!=8 && e.KeyChar!=32 && e.KeyChar!=46)
{
e.Handled = true;
}
else if(e.KeyChar==46 && textbox1.Text.IndexOf(".")>=0 )
{
e.Handled = true;
}
else if(textbox1.Text.IndexOf(".")>=0 && textbox1.Text.Length-textbox1.Text.IndexOf(".")>2)
{
e.Handled = true;
}
if (e.KeyChar==13)
{
try
{
decimal d =decimal.Parse(textbox1.Text);
if(double.Parse(d.ToString())<0.02)
{
System.Windows.Forms.MessageBox.Show("金额太小","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning);
return;
}
//#.##不足位数的用0补位
string s=d.ToString("#,##0.00");
textbox1.Text=s;
System.Windows.Forms.SendKeys.Send("\t");
}
catch(System.Exception ex){MessageBox.Show(ex.Message);}
}
}


其中
if(e.KeyChar==46 && textbox1.Text.IndexOf(".")>=0 )
{
e.Handled = true;
}
用于判断用户输入两次以上的"."的情况,

if(textbox1.Text.IndexOf(".")>=0 && textbox1.Text.Length-textbox1.Text.IndexOf(".")>2)
{
e.Handled = true;
}
用于当用户输入到分以后禁止继续输入的情况

在if (e.KeyChar==13)用户输入回车提交以后
先判断了一次输入金额的大小
decimal d =decimal.Parse(textbox1.Text);
if(double.Parse(d.ToString())<0.02)
然后回显到textbox上
string s=d.ToString("#,##0.00");
textbox1.Text=s;

  这些判断里,对小数点的判断写的不是太好.当用户输入到分的时候,连删除按钮也不能用了.不知哪位看到这段代码来完善一下,呵呵~~



电话咨询:010-60520722 QQ咨询:3792656   |   583696287   |   66733350 关于WebDN  |  站点地图  |  联系我们  |  支付方式  |  友情链接
© 2004-2008 WebDN.com 版权所有. 沪ICP备05040479号