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

简介: 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);

       }


相关文章
Winform中Textbox、NumericUpDown等修改高度,禁止输入数字或内容的实现
Winform中的Textbox、NumericUpDown控件通常在单行的情况下,无法直接通过`Height`属性修改高度,但很多时候我们需要调整其高度,使其显示的更加合理,主要介绍三种方法...
1721 0
|
.NET C# 容器
WPF自定义LED风格数字显示控件
原文:WPF自定义LED风格数字显示控件 版权声明:本文为博主原创文章,转载请注明作者和出处 https://blog.csdn.net/ZZZWWWPPP11199988899/article/details/52895167 ...
1661 0
|
5月前
|
C++
[Qt5&控件] Label控件显示文本内容(字符串和整数)
[Qt5&控件] Label控件显示文本内容(字符串和整数)
70 0
[Qt5&控件] Label控件显示文本内容(字符串和整数)
|
存储 前端开发 C++
2.8 输入控件(三)
2.8 输入控件(三)
2.8 输入控件(三)
|
数据安全/隐私保护 C++
2.8 输入控件(一)
2.8 输入控件(一)
2.8 输入控件(一)
|
C#
WPF 右上角带数字的按钮
原文:WPF 右上角带数字的按钮 效果如图所示   三种方案, 1:不改控件模版,布局实现,死开 2:改button模版,利用附加属性,附加附加属性,功能多了话,不利于拓展 3:继承button,添加依赖属性,接下来是这种     1:新建类 为啥交LBSButton,因为...
1224 0
|
C#
WPF TextBox/TextBlock 文本超出显示时,文本靠右显示
原文:WPF TextBox/TextBlock 文本超出显示时,文本靠右显示 文本框显示 文本框正常显示: 文本框超出区域显示:    实现方案 判断文本框是否超出区域 请见《TextBlock IsTextTrimmed 判断文本是否超出》 设置文本布局显示 1.
1569 0