您的位置:首页 > 其它

限制只能输入数值型的高级方法

2011-09-17 11:58 302 查看
//限制只能输入数值型

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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: