c# textbox 只能 输入数字,退格,小数点。如何实现 c# textbox 只能 输入数字,退格,小数点。如何实现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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; } 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; } } [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"); }} 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; } } 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; } } 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); } textbox_keypress(eventargs e)if(e.keychar>?? ||e.keychar<?? ||e.keychar==??||e.keychar==??){do what you want to do}elsee.handle=true; form的上一页和下一页是怎么实现呢? 请各位帮忙看看,有没有更好的实现方法 能否在groupbox的标题栏中放一个checkbox呢? 一道中学数学竞赛题! 数据库,命令! 在服务端生成提示给客户端后怎么保存下数据啊?????? 如何制作像邮箱添加附件那样的动态控件啊 WPF,要显示一张gif图片就这么难吗? 窗体回调 如何获取到另一个窗体中的值 一个有点挑战的小问题 我打算学c# directx开发3D,高手指点一下 c# 如何获取当前应用程序的图标
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;
}
{
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;
}
}
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");
}
}
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;
}
}
{
//检测是否已经输入了小数点
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;
}
}
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);
}
if(e.keychar>?? ||e.keychar<?? ||e.keychar==??||e.keychar==??)
{do what you want to do}
else
e.handle=true;