判定输入为数字

 

1、在文本框输入,可在KeyPress事件里进行判断

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 

      e.Handled = !char.IsLetterOrDigit(e.KeyChar);
}

或者

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 

     if   ((e.KeyChar   <   48   ||   e.KeyChar   >   57)   &&   (e.KeyChar   !=   8))
    {
          e.Handled   =   true;
     }
}

 

2、用正则表达式

2-1

string   s   =   "... ";
if   (System.Text.RegularExpressions.Regex.Replace(s, "[0-9] ", " ").Length   ==0)
{
  //字符串只有字符(0~9)组成
}


2-2

string   s   =   ".... ";
if(!System.Text.RegularExpressions.Regex.IsMatch(s,@ "^/d*$ "))
{
//字符串只有字符(0~9)组成
}

 

2-3

 

只能输入数字:"^[0-9]*$"。
只能输入n位的数字:"^/d{n}$"。
只能输入至少n位的数字:"^/d{n,}$"。
只能输入m~n位的数字:。"^/d{m,n}$"
只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
只能输入非零的正整数:"^/+?[1-9][0-9]*$"。
只能输入非零的负整数:"^/-[1-9][]0-9"*$。
只能输入长度为3的字符:"^.{3}$"。
只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。
只能输入由数字、26个英文字母或者下划线组成的字符串:"^/w+$"。
验证用户密码:"^[a-zA-Z]/w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
验证是否含有^%&',;=?$/"等字符:"[^%&',;=?$/x22]+"。
只能输入汉字:"^[/u4e00-/u9fa5]{0,}$"

 

3、用字符串轮询,可结合方法4

for(int   ii=0;ii <str.Length;ii++)
{
      if(str.substr(ii,1)   > =   "0 "   &&   str.substr(ii,1)   <= "9 ")
      {
      }
      else
      {
      }
}

 

4、利用字符char方法

char.IsNumber(char)

 

### C# WPF 中实现 TextBox 输入数值验证 为了确保 `TextBox` 只接受数值输入,在 C# 的 Windows Presentation Foundation (WPF) 应用程序中可以采用多种方法来实施这一功能。一种常见的方式是通过创建自定义的验证规则类继承于 `ValidationRule` 并重写其 `Validate` 方法[^1]。 下面是一个简单的例子展示如何构建这样的验证逻辑: ```csharp using System; using System.Globalization; using System.Windows.Controls; public class NumericValidationRule : ValidationRule { public override ValidationResult Validate(object value, CultureInfo cultureInfo) { double result; bool isValid = Double.TryParse(value as string, NumberStyles.Any, cultureInfo, out result); if (!isValid || result < 0) return new ValidationResult(false, "Please enter a valid non-negative number."); return ValidationResult.ValidResult; } } ``` 此代码片段展示了怎样编写一个名为 `NumericValidationRule` 的新类,它实现了基本的正数检测机制并返回相应的验证结果给调用者。当用户尝试提交表单或离开控件时触发验证过程[^2]。 接着可以在 XAML 文件里绑定这个规则到特定的 `TextBox` 控件上: ```xml <Window x:Class="YourNamespace.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <!-- Other elements --> <TextBox> <TextBox.Text> <Binding Path="SomeProperty" UpdateSourceTrigger="PropertyChanged"> <Binding.ValidationRules> <local:NumericValidationRule/> </Binding.ValidationRules> </Binding> </TextBox.Text> </TextBox> </Window> ``` 这里假设已经有一个属性叫做 `SomeProperty` 被用来双向绑定至 `TextBox` 文本内容,并且每当文本改变就会立即更新源对象中的该属性值(`UpdateSourceTrigger="PropertyChanged"`)[^3]。 此外还可以考虑利用第三方库简化开发流程,例如某些组件套件提供了内置的支持用于快速设置各种类型的输入限制而无需额外编码工作[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值