我做了一个文本框来插入一个电话号码。我只想要按下数字,删除按钮和连字符键。 我使用以下代码: 它适用于删除按钮和数字,我为连字符做什么?
private void ContactNumTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
const char Hyphen = (char)2d;
const char Delete = (char)8;
if (char.IsNumber(e.KeyChar) && e.KeyChar != Hyphen && e.KeyChar!= Delete)
e.Handled = true;
}
答案 0 :(得分:3)
使用十六进制数字时,必须在数字前加0x
。由于d
指定数字是双精度的巧合,您的代码目前正在编译。以下代码将正确检测连字符:
private void ContactNumTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
const char hyphen = (char)0x2D;
const char delete = (char)0x08;
if (!char.IsNumber(e.KeyChar) && e.KeyChar != hyphen && e.KeyChar!= delete)
e.Handled = true;
}
答案 1 :(得分:0)
您也可以尝试这个
if (!(char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back || e.KeyChar == '-'))
{
e.Handled = true;
}