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#
参考技术B1、首先,默认已经创建好了一个工程。
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;
你想实现的不就是金融数字吗?带小数点,且小数点后是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# 文本框只能输入数字的主要内容,如果未能解决你的问题,请参考以下文章