//限制只能输入数值型
private void Amount_KeyPress(object sender, KeyPressEventArgs e)
{
// 高级方法:(打破了很多限制,自己去体会和KeyDown、KeyUp的区别和联系)
//e.KeyChar的值可以与十进制或十六进制的值对应,但显示出来的e.KeyChar.Tostring()为非ASCALL码值
//更改过得方法可以使用键盘上的字符来操作,eg:Ctrl+C
//0为十进制,(char)0 表ASCALL码的NULL,等价与十六进制的00
if (e.KeyChar == 0x20) e.KeyChar = (char)0; //禁止空格键,0x20为十六进制的空格表示,或换成十进制的32亦可
if ((e.KeyChar == 0x2D) && (((TextBox)sender).Text.Length == 0)) return; //处理负数,同上0x2D(为'-'),转化为十进制为45
if (e.KeyChar > 0x20) //其他小于32的字符(符号)不处理,即不触发e.Handel=True,或写成e.KeyChar > 32
{
MessageBox.Show(e.KeyChar.ToString());
try
{
Convert.ToDouble(((TextBox)sender).Text + e.KeyChar.ToString());
}
catch
{
e.KeyChar = (char)0; //处理非法字符
}
}
//中级方法:(缺点,不能使用键盘上得Ctrl+C等来操作)
if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 46 && e.KeyChar != 8)
{
e.Handled = true;
}
}