C# 文本框只能输入数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 文本框只能输入数字相关的知识,希望对你有一定的参考价值。

上百度看了很多都不行!!都是骗人的!!
我想要一个可以用的!
不要正则表达式的

有哪位高手指点一下

 代码如下:

调用TextBox的KeyPress事件

private void txtUserId_KeyPress(object sender, KeyPressEventArgs e)

//如果输入的不是数字键,也不是回车键、Backspace键,则取消该输入

if (!(Char.IsNumber(e.KeyChar)) && e.KeyChar!=(char)13 && e.KeyChar!=(char)8)

e.Handled = true;

扩展资料:

注意事项

C#文本框输入限制

//只能输入数字和小数点和退格键

    private void txt_KeyPress(object sender, KeyPressEventArgs e)

   

        if (((int)e.KeyChar < 48 || (int)e.KeyChar > 57) && (int)e.KeyChar != 8 && (int)e.KeyChar != 46)

       

            e.Handled = true;

       

   

    //只能输入数字和退格键

    private void txt_KeyPress(object sender, KeyPressEventArgs e)

   

        if (!(Char.IsNumber(e.KeyChar)) && e.KeyChar != (char)8)

       

            e.Handled = true;

       

   

    //限制输入只能为数字

    private void txt_KeyPress(object sender, KeyPressEventArgs e)

   

        if (!(Char.IsNumber(e.KeyChar)) && e.KeyChar != (Char)8)

       

            e.Handled = true;

       

   

    //限制输入不能为中文和全角

    private void txt_KeyPress(object sender, KeyPressEventArgs e)

   

        int chfrom = Convert.ToInt32("4e00", 16);    //范围(0x4e00~0x9fa5)转换成int(chfrom~chend)

        int chend = Convert.ToInt32("9fa5", 16);

        if (e.KeyChar >= (Char)chfrom && e.KeyChar <= (Char)chend)

       

            e.Handled = true;

       

        if (e.KeyChar >= (Char)65281 & (int)e.KeyChar <= (Char)65374)

       

            e.Handled = true;

       

   

    //限制输入只能输入数字和字母,退格键

    private void txt_KeyPress(object sender, KeyPressEventArgs e)

   

        if ((e.KeyChar >= 'a' && e.KeyChar <= 'z') || (e.KeyChar >= 'A' && e.KeyChar <= 'Z')

            || (e.KeyChar >= '0' && e.KeyChar <= '9') || (e.KeyChar == 8))

       

            e.Handled = false;

       

        else

       

            e.Handled = true;

       

   

参考技术A

代码如下:

private void txtNumber_KeyPress(object sender, KeyPressEventArgs e) if (e.KeyChar == 0x20) e.KeyChar = (char)0;  //禁止空格键

if (e.KeyChar == (char)46) e.KeyChar = (char)0;

if ((e.KeyChar == 0x2D) && (((TextBox)sender).Text.Length == 0)) return;   //处理负数

if (e.KeyChar > 0x20)trydouble.Parse(((TextBox)sender).Text + e.KeyChar.ToString());

catche.KeyChar = (char)0;

扩展资料

登录功能代码

public partial class LoginForm : Form
public LoginForm()
InitializeComponent();
//判断是否登录成功

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
//获取用户名

string username = textBox1.Text;
//获取密码

string password = textBox2.Text;
//判断用户名密码是否正确

if ("xiaoming".Equals(username) && "123456".Equals(password))MessageBox.Show("登录成功!");

elseMessageBox.Show("登录失败!");

历史发展

C#是微软公司在2000年6月发布的一种新的编程语言,主要由安德斯·海尔斯伯格(Anders Hejlsberg)主持开发,它是第一个面向组件的编程语言,其源码会编译成msil再运行。

它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,并且新增了许多功能及语法,而且它是微软公司.NET windows网络框架的主角。

参考资料来源:百度百科-C#

参考技术B

1、首先,默认已经创建好了一个工程。

2、然后在窗口中添加一个标签控件和文本框控件,并修改标签的文字为成绩,文本框的name为EdtSorce,text为空。

3、然后选择文本框,并在属性面板中切换到“事件”选项卡,找到onKeyPress事件,点击进入代码编辑窗口。

4、然后在打开的代码窗口中写入以下代码。

5、运行后,效果如下,大家可以发现只有按下数字键,才会有字符在文本框中显示出来,其它按钮都没有反应。

6、如果大家还想允许小数字出现,并且退格键可用,那么还可以如下图所示进行代码修改。

参考技术C 调用TextBox的KeyPress事件
private void txtUserId_KeyPress(object sender, KeyPressEventArgs e)

//如果输入的不是数字键,也不是回车键、Backspace键,则取消该输入
if (!(Char.IsNumber(e.KeyChar)) && e.KeyChar!=(char)13 && e.KeyChar!=(char)8)

e.Handled = true;



最好弄个自定义控件,继承TextBox,重写OnKeyPress事件本回答被提问者采纳
参考技术D function onlyNum()
var k=window.event.keyCode;
if ((k==46)||(k==8)||(k==189)||(k==109)||(k==190)||(k==110)|| (k>=48 && k<=57)||(k>=96 && k<=105)||(k>=37 && k<=40))

else if(k==13)
window.event.keyCode = 9;

else
window.event.returnValue = false;



文本框 onkeydown="onlyNum();"

这个JS不是很全面.好像英文状态下可以输入 .

不过够用了,你也可以再查下资料稍微修改一下

C# winform 文本框里,怎么设置数字的格式?

比如我输入42152,它就显示为42,152.00。

在Winform(C#)中要实现限制Textbox只能输入数字,一般的做法就是在按键事件中处理,判断keychar的值。限制只能输入数字,小数点,Backspace,del这几个键。数字0~9所对应的keychar为48~57,小数点是46,Backspace是8。   

    判断是否为数字或Backspace,按下面这样写的话只能输入数字和Backspace,所以还得给代码添加些条件,还要能够输入小数点。

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
           
                try
               
                    int kc = (int)e.KeyChar;
                    if ((kc < 48 || kc > 57) && kc != 8)
                        e.Handled = true;
               
                catch (Exception)
               
               

        

    输入小数点。输入的小数要符合数字的格式,类似9.9.9这样的是不能够输入的。做法就是用float.TryParse来转换Textbox中之前和之后的值,然后比较两者的转换结果。具体的代码如下:

 if (kc == 46)                       //小数点
   
        if (txtMoney.Text.Length <= 0)
            e.Handled = true;           //小数点不能在第一位
        else
       
            float f;
            float oldf;
            bool b1 = false, b2 = false;
            b1 = float.TryParse(txtMoney.Text, out oldf);
            b2 = float.TryParse(txtMoney.Text + e.KeyChar.ToString(), out f);
            if (b2 == false)
           
                if (b1 == true)
                    e.Handled = true;
                else
                    e.Handled = false;
           
       
   

参考技术A 当输入完成后用substring 在后台截取处理吧

你想实现的不就是金融数字吗?带小数点,且小数点后是00整数部分每三位用逗号隔开?

textbox只能设置样式,接受的只是字符串,不能设置类型的吧
参考技术B 可在文本框失去焦点的时候,将里面的值进行修改

private void textBox1_Leave(object sender, EventArgs e)

int num = int.Parse(textBox1.Text);
textBox1.Text = string.Format(num.ToString("N"));
参考技术C 代码如下
private string FormatCurrency(string dataValue)

if(dataValue == "")

return "";

string number = dataValue;
int ln = number.Length;
int comma = ln % 3;
int divided = ln / 3;
string retArry = string.Empty;
if(comma == 0)

retArry = number.Substring(0, 3);
for(int i = 1; i < divided; i++)

retArry += ",";
retArry += number.Substring(i*3, 3);


else

retArry = number.Substring(0, comma);
for(int i = 0; i < divided; i++)

retArry += ",";
retArry += number.Substring(comma + i*3, 3);


return retArry;

最后在外面调用这个方法:
String str = FormatCurrency("99999").toString(".##")
结果得到str = 99,999.00

参考资料:我自己

参考技术D 用string.fromat. 或者用mask****控件.

以上是关于C# 文本框只能输入数字的主要内容,如果未能解决你的问题,请参考以下文章

C#限制文本框输入

C#限制文本框只能输入指定的类型(汉字数字)

在C#中怎么用正则表达式限制文本框内不能输入数字?

c#如何判断文本框中是不是是数字

asp.net怎么限制文本框输入的类型c#

c#中如何判断文本框中是不是是数字(包括小数)