WPF限制文本框只能输入数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF限制文本框只能输入数字相关的知识,希望对你有一定的参考价值。


在一个程序中有时候文本框需要添加限制,比如需要限制文本框只能输入数字,限制文本框只能输入数字和字母等等。先来介绍文本框只能输入数字

<TextBox    PreviewTextInput="UserName_PreviewTextInput"  //限制输入特殊字符
PreviewKeyDown="Space_PreviewKeyDown" //限制输入空格
InputMethod.IsInputMethodEnabled="False" > <TextBox.CommandBindings>//禁止复制粘贴
<CommandBinding Command="ApplicationCommands.Paste" CanExecute="CommandBinding_CanExecute"/>
<CommandBinding Command="ApplicationCommands.Copy" CanExecute="CommandBinding_CanExecute"/>
<CommandBinding Command="ApplicationCommands.Cut" CanExecute="CommandBinding_CanExecute"/>
</TextBox.CommandBindings>
</TextBox>

需要类

public class TextRestrict



/// <summary>
/// 禁止文本框复制粘贴
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void Prohibit(object sender, CanExecuteRoutedEventArgs e)

e.CanExecute = false;
e.Handled = true;





/// <summary>
/// 鼠标按下事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void ButtonDown(PasswordBox pwd, TextBox txt)

txt.Text = pwd.Password;
txt.IsEnabled = true;
txt.Visibility = Visibility.Visible;
pwd.IsEnabled = false;
pwd.Visibility = Visibility.Hidden;


#endregion

public void SpaceKeyDown(object sender, KeyEventArgs e)

if (e.Key == Key.Space)

e.Handled = true;





在根据textbox中的所写的属性写方法

限制输入空格

TextRestrict text = new TextRestrict();
private void Space_PreviewKeyDown(object sender, KeyEventArgs e)

text.SpaceKeyDown(sender, e);
限制特殊字符
private void UserName_PreviewTextInput(object sender, TextCompositionEventArgs e)

Astrict astrict = new Astrict();
astrict.Number(sender, e);
禁止粘贴复制
private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e)

text.Prohibit(sender, e);

以上是关于WPF限制文本框只能输入数字的主要内容,如果未能解决你的问题,请参考以下文章

用正则表达式限制文本框只能输入数字和+

VB文本框怎样限制只能输入数字值

wpf 文本框问题

js验证如何限制文本框只能输入数字

wpf 限制textbox只能输入数字及特殊键

js验证如何限制文本框只能输入数字