C#文本框中只能输入数字和一个小数点 C#文本框中只能输入数字和一个小数点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 也不行啊,^\d+.?\d*$这个的话虽然有提示错误,可是仍然可以输入到textBox中啊 private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if ((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar =='.') { e.Handled = false; } else { e.Handled = true; } }以上是源代码文本框有一个KeyPress事件限制输入的 我这有个笨办法,楼主自己改改看吧private void TextBox1_TextChanged(object sender, EventArgs e) { Regex textNumberReg = new Regex(@"[^(0-9)]"); Match searchMatch = textNumberReg.Match(PhoneNumText2.Text); if (searchMatch.Success) if (DialogResult.OK == MessageBox.Show("只能输入数字", "出错啦", MessageBoxButtons.OK, MessageBoxIcon.Error)) TextBox1.Text = ""; } 一法: private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if ((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar =='.') { e.Handled = false; } else { e.Handled = true; } } 以上是源代码 二法:这个也是可以的咯,正则表达式private void TextBox1_TextChanged(object sender, EventArgs e) { Regex textNumberReg = new Regex(@"[^(0-9)]"); Match searchMatch = textNumberReg.Match(PhoneNumText2.Text); if (searchMatch.Success) if (DialogResult.OK == MessageBox.Show("只能输入数字", "出错啦", MessageBoxButtons.OK, MessageBoxIcon.Error)) TextBox1.Text = ""; } private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if ((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar =='.') { e.Handled = false; //只能有一个小数点 if(textBox1.Text.IndexOf(".")>=0)e.Handled = true; // else e.Handled = false; } else { e.Handled = true; } } private void textBox2_KeyPress(object sender, KeyPressEventArgs e) { //检测是否已经输入了小数点 bool IsContainsDot = this.textBox2 .Text.Contains("."); if ((e.KeyChar < 48 || e.KeyChar > 57) && (e.KeyChar != 8) && (e.KeyChar != 46)) { e.Handled = true; } else if (IsContainsDot && (e.KeyChar == 46)) //如果输入了小数点,并且再次输入 { e.Handled = true; } } 查找重复值问题,请帮忙 关于双击BUTTON按钮后,事件写在哪里 新手问题:无法将类型“string”隐式转换为“int” freetextbox太难用了,求解决办法或者替换的控件 请教各位高手:怎么样改变文件的编码格式。 关于C#中的TcpClient绑定同一端口的问题! 求内存资源解决方案. 如何自定义一个分割线控件? 怎样把一个文件流写入到一个文件中去? c#有没自己的标准库函数???????????????????? C# 绘图/透视问题 读取一个网站的外部域名思路求解?
{
if ((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar =='.')
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}
以上是源代码
文本框有一个KeyPress事件限制输入的
{
Regex textNumberReg = new Regex(@"[^(0-9)]");
Match searchMatch = textNumberReg.Match(PhoneNumText2.Text);
if (searchMatch.Success)
if (DialogResult.OK == MessageBox.Show("只能输入数字", "出错啦", MessageBoxButtons.OK, MessageBoxIcon.Error))
TextBox1.Text = "";
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar =='.')
{
e.Handled = false;
}
else
{
e.Handled = true;
}
}
以上是源代码
二法:
这个也是可以的咯,正则表达式
private void TextBox1_TextChanged(object sender, EventArgs e)
{
Regex textNumberReg = new Regex(@"[^(0-9)]");
Match searchMatch = textNumberReg.Match(PhoneNumText2.Text);
if (searchMatch.Success)
if (DialogResult.OK == MessageBox.Show("只能输入数字", "出错啦", MessageBoxButtons.OK, MessageBoxIcon.Error))
TextBox1.Text = "";
}
{
if ((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar =='.')
{
e.Handled = false;
//只能有一个小数点
if(textBox1.Text.IndexOf(".")>=0)e.Handled = true; //
else e.Handled = false;
}
else
{
e.Handled = true;
}
}
{
//检测是否已经输入了小数点
bool IsContainsDot = this.textBox2 .Text.Contains(".");
if ((e.KeyChar < 48 || e.KeyChar > 57) && (e.KeyChar != 8) && (e.KeyChar != 46))
{
e.Handled = true;
}
else if (IsContainsDot && (e.KeyChar == 46)) //如果输入了小数点,并且再次输入
{
e.Handled = true;
}
}