WPF文本框只允许输入数字

XAML代码

 
< TextBox Height= "23" HorizontalAlignment= "Left" Margin= "100,5,0,0" Name= "textBox1" VerticalAlignment= "Top"
Width= "120" DataObject.Pasting= "textBox1_Pasting" PreviewKeyDown= "textBox1_PreviewKeyDown"
InputMethod.IsInputMethodEnabled= "False" PreviewTextInput= "textBox1_PreviewTextInput"/ >
 
  
 
  
 
cs代码
 
  
 
//检测粘贴
         private void textBox1_Pasting( object sender, DataObjectPastingEventArgs e)
         {
             if (e.DataObject.GetDataPresent( typeof (String)))
             {
                 String text = (String)e.DataObject.GetData( typeof (String));
                 if (!isNumberic(text))
                 { e.CancelCommand(); }
             }
             else { e.CancelCommand(); }
         }
 
  
 
         private void textBox1_PreviewKeyDown( object sender, KeyEventArgs e)
         {
             if (e.Key == Key.Space)
                 e.Handled = true ;
         }
 
  
 
         private void textBox1_PreviewTextInput( object sender, TextCompositionEventArgs e)
         {
             if (!isNumberic(e.Text))
             {
                 e.Handled = true ;
             }
             else
                 e.Handled = false ;
         }
 
 
         //isDigit是否是数字
         public static bool isNumberic( string _string)
         {
             if ( string .IsNullOrEmpty(_string))
                 return false ;
             foreach ( char c in _string)
             {
                 if (! char .IsDigit(c))
                     //if(c<'0' c="">'9')//最好的方法,在下面测试数据中再加一个0,然后这种方法效率会搞10毫秒左右
                     return false ;
             }
             return true ;
         }

转载于:https://www.cnblogs.com/kid526940065/p/8515896.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值