c# textbox 只能 输入数字,退格,小数点。如何实现

wcl0201wcl 2009-08-04 04:16:46
c# textbox 只能 输入数字,退格,小数点。如何实现
...全文
4975 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaod1986 2010-04-17
  • 打赏
  • 举报
回复
过来学习!!!
psho78 2009-08-04
  • 打赏
  • 举报
回复
textbox_keypress(eventargs e)
if(e.keychar>?? ||e.keychar<?? ||e.keychar==??||e.keychar==??)
{do what you want to do}
else
e.handle=true;
chaozi_249 2009-08-04
  • 打赏
  • 举报
回复

private bool IsAllNumber(string text)
{
Regex objNotNumberPattern = new Regex("[^0-9.-]");
Regex objTwoDotPattern = new Regex("[0-9]*[.][0-9]*[.][0-9]*");
Regex objTwoMinusPattern = new Regex("[0-9]*[-][0-9]*[-][0-9]*");
String strValidRealPattern = "^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";
String strValidIntegerPattern = "^([-]|[0-9])[0-9]*$";
Regex objNumberPattern = new Regex("(" + strValidRealPattern + ")|(" + strValidIntegerPattern + ")");
return !objNotNumberPattern.IsMatch(text) && !objTwoDotPattern.IsMatch(text) && !objTwoMinusPattern.IsMatch(text) && objNumberPattern.IsMatch(text);
}
风之影子 2009-08-04
  • 打赏
  • 举报
回复
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;
}

}
kennie_190602169 2009-08-04
  • 打赏
  • 举报
回复
啊...格式丑了点,见谅见谅,将就将就.
daone 2009-08-04
  • 打赏
  • 举报
回复
自定义控件才是根本
kennie_190602169 2009-08-04
  • 打赏
  • 举报
回复

private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
//限制只能输入字母和数字
  if(!((e.KeyChar >= '0' && e.KeyChar <= '9') || e.KeyChar == '.' ||((int)e.KeyChar == (int)System.Windows.Forms.Keys.Back)))
{
  e.Handled = true;
}
}

daone 2009-08-04
  • 打赏
  • 举报
回复
[ToolboxData("<{0}:NumberBox runat=server></{0}:NumberBox>"), DefaultProperty("Text")]
public class NumberBox : TextBox
{
// Methods
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
base.AddAttributesToRender(writer);
writer.AddAttribute("OnKeyDown", "NumberKey()");
}

protected override void OnLoad(EventArgs e)
{
if (!this.Page.IsClientScriptBlockRegistered("NumberBoxScript"))
{
this.Page.RegisterClientScriptBlock("NumberBoxScript", this.RenderScript());
}
base.OnLoad(e);
}

protected override void Render(HtmlTextWriter output)
{
base.Render(output);
}

private string RenderScript()
{
string str = "";
return (((((str + "\n<script language=\"javascript\"> \n") + "function NumberKey() \n" + "{ \n") + "\tif(!( (event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)||(event.keyCode==8||event.keyCode==110||event.keyCode==190||event.keyCode==37||event.keyCode==39) )) \n" + "\t{ \n") + "\t\tevent.returnValue = false; \n" + "\t} \n") + "} \n" + "</script> \n");
}
}

jinshanxia 2009-08-04
  • 打赏
  • 举报
回复
JS+正则
muyebo 2009-08-04
  • 打赏
  • 举报
回复
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar < '0' && e.KeyChar != '.' || e.KeyChar > '9' && e.KeyChar != '.' || ((TextBox)(sender)).Text.IndexOf('.') >= 0 && e.KeyChar == '.') && e.KeyChar != (char)13 && e.KeyChar != (char)8)
{
e.Handled = true;
}


}
NealXX 2009-08-04
  • 打赏
  • 举报
回复

private void NumberAccpter(object sender, KeyPressEventArgs e)
{
int keyValue = (int)e.KeyChar;
if ((keyValue >= 48 && keyValue <= 57) || keyValue == 8 || keyValue == 46)
{
if (sender != null && sender is TextBox && keyValue == 46)
{
if (((TextBox)sender).Text.IndexOf(".") >= 0)
e.Handled = true;
else
e.Handled = false;
}
else
e.Handled = false;
}
else
e.Handled = true;
}

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧