0

我做了一个文本框来插入电话号码。我只想按下数字、删除按钮和连字符键。我使用了以下代码:它适用于删除按钮和数字,我应该为连字符做什么?

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; 
}
4

2 回答 2

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; 
}
于 2013-03-25T05:34:41.350 回答
0

你也可以试试这个

if (!(char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back || e.KeyChar == '-'))
{
     e.Handled = true;

}
于 2018-07-10T05:54:06.977 回答