• WPF TextBox 验证输入


    //验证输入为数字
    02 private void txt_time_KeyDown(object sender, KeyEventArgs e)
    03 {
    04     if (!((e.Key >= Key.D0 && e.Key <= Key.D9) || (e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9)))
    05     {
    06         e.Handled = true;
    07     }
    08 }
    09  
    10 //屏蔽粘贴非法字符
    11 private void txt_time_TextChanged(object sender, TextChangedEventArgs e)
    12 {
    13     var textBox = sender as TextBox;
    14     TextChange[] change = new TextChange[e.Changes.Count];
    15     e.Changes.CopyTo(change, 0);
    16  
    17     int offset = change[0].Offset;
    18     if (change[0].AddedLength > 0)
    19     {
    20         double num = 0;
    21         if (!Double.TryParse(textBox.Text, out num))
    22         {
    23             textBox.Text = textBox.Text.Remove(offset, change[0].AddedLength);
    24             textBox.Select(offset, 0);
    25         }
    26     }
    27 }

     

     

    01 //屏蔽非法按键
    02 private void txtAge_KeyDown(object sender, KeyEventArgs e)
    03 {
    04     TextBox txt = sender as TextBox;
    05  
    06     if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Decimal)
    07     {
    08         if (txt.Text.Contains(".") && e.Key == Key.Decimal)
    09         {
    10             e.Handled = true;
    11             return;
    12         }
    13         e.Handled = false;
    14     }
    15     else if (((e.Key >= Key.D0 && e.Key <= Key.D9) || e.Key == Key.OemPeriod) && e.KeyboardDevice.Modifiers != ModifierKeys.Shift)
    16     {
    17         if (txt.Text.Contains(".") && e.Key == Key.OemPeriod)
    18         {
    19             e.Handled = true;
    20             return;
    21         }
    22         e.Handled = false;
    23     }
    24     else
    25     {
    26         e.Handled = true;
    27     }
    28 }
    29  
    30 //屏蔽中文输入和非法字符粘贴输入
    31 private void txtAge_TextChanged(object sender, TextChangedEventArgs e)
    32 {
    33     TextBox textBox = sender as TextBox;
    34     TextChange[] change = new TextChange[e.Changes.Count];
    35     e.Changes.CopyTo(change, 0);
    36  
    37     int offset = change[0].Offset;
    38     if (change[0].AddedLength > 0)
    39     {
    40         double num = 0;
    41         if (!Double.TryParse(textBox.Text, out num))
    42         {
    43             textBox.Text = textBox.Text.Remove(offset, change[0].AddedLength);
    44             textBox.Select(offset, 0);
    45         }
    46     }
    47 }
  • 相关阅读:
    代码生成器所用到的东西
    被float.parse吃掉的0.03...
    Microsoft Visual Studio 2010 Ultimate ISO 官方下载地址
    关于.net实现网站模板机制(非标签替换)
    关于ACCESS的事务与存储过程的调用
    关于如何实现左中右三栏布局, 左右固定宽度,中间随屏幕自适应
    几个台湾优秀个人博客网站
    [转]MathType常见问题
    Qt中int转换成QString
    fatal error C1189: #error : The C++ Standard Library forbids macroizing keywords. Enable warning C4005 to find the forbidden macro.
  • 原文地址:https://www.cnblogs.com/luluping/p/2236159.html
Copyright © 2020-2023  润新知