首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#如何限制文本框只能输入数字?

2011-12-28 
C#怎么限制文本框只能输入数字???如题,我有四个文本框需要限制只能输入数字,最好能给出具体代码!!![解决办

C#怎么限制文本框只能输入数字???
如题,我有四个文本框需要限制只能输入数字,最好能给出具体代码!!!

[解决办法]
Winform?

你最好从TextBox继承一个新的类,然后重写Wndproc,可以参考:

http://blog.csdn.net/hbxtlhx/archive/2004/11/12/178510.aspx
[解决办法]
用验证控件``
^[0-9]{1,}$ 正则表达式

[解决办法]
MaskedTextBox
[解决办法]

探讨
MaskedTextBox

[解决办法]
探讨
引用:
MaskedTextBox

or validating 事件中过滤

[解决办法]
用正则表达
if (System.Text.RegularExpressions.Regex.IsMatch(this.textBox7.Text.Trim(), "^[0-9]*$"))
[解决办法]
MSDN CODE:

C# code
        //下面的示例确定用户是否按下了非数字键,如果是,则通过使用 Handled 属性取消 KeyPress 事件。        private bool nonNumberEntered = false;        private void textBox1_KeyDown(object sender, KeyEventArgs e)        {            nonNumberEntered = false;            if ((e.KeyCode < Keys.D0) || (e.KeyCode > Keys.D9 && e.KeyCode < Keys.NumPad0) || (e.KeyCode > Keys.NumPad9))            {                if (e.KeyCode != Keys.Back)                   {                    nonNumberEntered = true;                }            }        }        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)        {            if (nonNumberEntered)            {                e.Handled = true;             }        }        ---------------------------------------------------------
[解决办法]
自定义控件,继承TextBox。

我写一个,代码长,不让发。
[解决办法]
楼主可以用javascript 判断..
[解决办法]
C# code
private void textBox6_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if((int)e.KeyChar>=48&(int)e.KeyChar<=57|(int)e.KeyChar==8)
{
e.Handled=false;
}
else
{
e.Handled=true;
}

}

[解决办法]
上面只是考虑了输入,如果运用了复制粘贴,是不是都没有进行过滤,还得加上这个才是完善的解决吧
[解决办法]
validating的时候验证,用正则表达式判断
[解决办法]
也可以用Checked检查一下你输入的格式,如下 整型
C# code
protected void btnCal_Click(object sender, EventArgs e)    {        try        {            checked { int nInput = int.Parse(tbInput.Text); }                    }        catch (FormatException)//输入字符格式错误异常处理         {            Response.Write("要输入整数!");        }                    }
[解决办法]
private void textBox1_TextChanged(object sender, EventArgs e)
{
string strInput = this.textBox1.Text.ToString();
string strRegex = @"^\d+$";

if (!Regex.IsMatch(strInput, strRegex))
{
this.textBox1.Text = string.Empt;


}

}
[解决办法]
为各个文本框增设KeyPress事件
private void textBox1_KeyPress_1(object sender, KeyPressEventArgs e)
{
//只能输入数字 
if (e.KeyChar != 8 && !char.IsNumber(e.KeyChar))
{
e.Handled = true;
}
}
[解决办法]
你可以判断一下你输入字符的ASCII码,看它是否在数字之间。。。我原来编写过,可以的,现在一时半会不想写了,你可以试试利用ASCII码判断
[解决办法]
使用RegularExpressionValidator控件 把ControlToValidate指向TextBox的ID, ValidationExpression="^[1-9]\d*$"(正则表达式)
[解决办法]
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if ( “在此添加ASCII码验证,看输入的字串是否符合条件”)
{
//如果满足条件
e.Handled = false; 
}
else
{
e.Handled = true;
}
}
这里继承重写了textbox 的textBox1_KeyPress方法

基本框架是这样的,我原来就是这样写的,是完全可以的,好长时间没接触了,你可以试试,也不知道有没有记错

热点排行