码迷,mamicode.com
首页 > Windows程序 > 详细

在WPF中,有没有一个只能输入数字的控件啊!

时间:2015-08-09 18:42:33      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

目前没有吧,你可以有两种选择:

1.重写控件,截获消息

2.为TextBox加事件,屏蔽按键

以下给出第二种方案:

为TextBox加两个事件:TextChanged和KeyDown事件,具体如下:

KeyDown事件:

private void TextBox_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)        

{            

  TextBox txt = sender as TextBox;

             //屏蔽非法按键            

  if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Decimal)            

  {                

    if (txt.Text.Contains(".") && e.Key == Key.Decimal)                

    {                    

      e.Handled = true;                    

      return;                

    }                

    e.Handled = false;            

  }            

  else if (((e.Key >= Key.D0 && e.Key <= Key.D9) || e.Key == Key.OemPeriod) && e.KeyboardDevice.Modifiers !=        ModifierKeys.Shift)            

  {                

    if (txt.Text.Contains(".") && e.Key == Key.OemPeriod)                

    {                    

      e.Handled = true;                    

      return;                

    }                

    e.Handled = false;            

  }            

  else            

  {  e.Handled = true;  }        

}

 

TextChanged事件:

private void TextBox_TextChanged(object sender, TextChangedEventArgs e)        

{            

  //屏蔽中文输入和非法字符粘贴输入            

  TextBox textBox = sender as TextBox;            

  TextChange[] change = new TextChange[e.Changes.Count];            

  e.Changes.CopyTo(change, 0);

      int offset = change[0].Offset;            

  if (change[0].AddedLength > 0)            

  {                

    double num = 0;                

    if (!Double.TryParse(textBox.Text, out num))                

    {                    

      textBox.Text = textBox.Text.Remove(offset, change[0].AddedLength);                    

      textBox.Select(offset, 0);                

    }            

  }        

}

在WPF中,有没有一个只能输入数字的控件啊!

标签:

原文地址:http://www.cnblogs.com/hcwj/p/4715547.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!