小问题也得高人解,求助:如何才能在文本框中输入不大于某一个数值的数字 采集TextChanged事件,在用户写字符时判断,如果大了,就自动给他删除一个 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private void textBox1_TextChanged(object sender, System.EventArgs e){ if (Convert.ToInt32(textBox1.Text)>10) MessageBox.Show("jkjfkdj");} 这个办法看起来很好。但是关键是我的这个文本框的值还会参与别的计算,所以不愿意要事后才激发。而想在键盘事件的时候激发判断。private void tbxMoneyAmount_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e){ try { Decimal doo = 0; if(this.tbxThisMoneyAmount.Text != "") { if((e.KeyValue >= (int)(char)'0' && e.KeyValue <= (int)(char)'9')|| e.KeyValue == (int)(char)'.') { char c = (char)e.KeyValue; string m = this.tbxMoneyAmount.Text; m += c; doo = System.Convert.ToDecimal(m)*System.Convert.ToDecimal(this.tbxExchangeRate.Text); if(doo > System.Convert.ToDecimal(PayableTotalMoney)) e.Handled = true; else e.Handled = false; } else e.Handled = false;} } catch{} }这一段代码中我明明已经捕捉到e.Handled = true;可惜还是把那个字符加到了文本框中去了。百思不得其解呀。 有两种办法1 验证控件 直接在客户端验证2 if ((Int32.Parse(textBox1.text)>最小值)&&(Int32.Parse(textBox1.Text)<最大值)) { 范围以内 } else { 范围以外 } 是WinForm,不知道有没有这个验证的东西。 同时你还得考虑限制用户的粘贴,参考http://blog.csdn.net/FlashElf/archive/2004/10/31/161024.aspx?Pending=true 用javascript解决,keypress事件。 override WinForm 的ProcessKeyPreview方法如下:protected override bool ProcessKeyPreview(ref Message m) { if(m.WParam.ToInt32() > 55)//大于5就不能加上 { return true; } return base.ProcessKeyPreview (ref m); } 当页面有2个按钮如何指定键值 运行vs2005报错 关于winform和axwebbrowser! 投票功能怎么做? C# 字符串 "\" 安装Duwamish7.0必须得安装SQL Server吗? 求教一个小问题!!!!急急急 是List的问题还是Cache的问题??????? Windows服务和窗体的问题 如何列举出安装在我计算机上的所有打印机? 请教一个函数调用的问题? 大家看看我的代码错在哪里?谢谢关注。..
{
if (Convert.ToInt32(textBox1.Text)>10)
MessageBox.Show("jkjfkdj");
}
private void tbxMoneyAmount_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
try
{
Decimal doo = 0;
if(this.tbxThisMoneyAmount.Text != "")
{
if((e.KeyValue >= (int)(char)'0' && e.KeyValue <= (int)(char)'9')|| e.KeyValue == (int)(char)'.')
{
char c = (char)e.KeyValue;
string m = this.tbxMoneyAmount.Text;
m += c;
doo = System.Convert.ToDecimal(m)*System.Convert.ToDecimal(this.tbxExchangeRate.Text); if(doo > System.Convert.ToDecimal(PayableTotalMoney))
e.Handled = true;
else
e.Handled = false;
}
else
e.Handled = false;
}
}
catch{}
}这一段代码中我明明已经捕捉到e.Handled = true;可惜还是把那个字符加到了文本框中去了。
百思不得其解呀。
2 if ((Int32.Parse(textBox1.text)>最小值)&&(Int32.Parse(textBox1.Text)<最大值))
{
范围以内
}
else
{
范围以外
}
http://blog.csdn.net/FlashElf/archive/2004/10/31/161024.aspx?Pending=true
protected override bool ProcessKeyPreview(ref Message m)
{ if(m.WParam.ToInt32() > 55)//大于5就不能加上
{
return true;
}
return base.ProcessKeyPreview (ref m);
}