WPF 限制Textbox输入的内容

限制文本框TextBox的输入内容,在很多场景都有应用。举个例子,现在文本框中,只能输入0、1、2、3、4、5、6、7、8、9、“|”这11个字符。

限制输入0-9很容易实现,关键是这个“|”符号。它在WPF中对应的是Key.OemPipe键。如果直接允许该键输入,那么会有“\”这个符号也可以输入。那么问题来了,怎么才能限制呢?很简单:先确认shift键是否已经按下。

关键代码如下:

1 bool shiftKey = (Keyboard.Modifiers & ModifierKeys.Shift) != 0;

这样,当我们确认已经按下了shift键时,才允许Key.OemPiple键按下,就可以确保只能输入“|”符号了。

一个完整的示例代码如下:

 1 private void textbox_keydown_event(object sender, KeyEventArgs)
 2 {
 3             bool shiftKey = (Keyboard.Modifiers & ModifierKeys.Shift) != 0;
 4             if (shiftKey == true)
 5             {
 6                 if (e.Key != Key.OemPipe)
 7                 {
 8                     e.Handled = true;
 9                 }
10             }
11             else if (e.Key != Key.Delete && e.Key != Key.Back &&
12                      e.Key != Key.D0 && e.Key != Key.D1 &&
13                      e.Key != Key.D2 && e.Key != Key.D3 &&
14                      e.Key != Key.D4 && e.Key != Key.D5 &&
15                      e.Key != Key.D6 && e.Key != Key.D7 &&
16                      e.Key != Key.D8 && e.Key != Key.D9 &&
17                      e.Key != Key.NumPad0 && e.Key != Key.NumPad1 &&
18                      e.Key != Key.NumPad2 && e.Key != Key.NumPad3 &&
19                      e.Key != Key.NumPad4 && e.Key != Key.NumPad5 &&
20                      e.Key != Key.NumPad6 && e.Key != Key.NumPad7 &&
21                      e.Key != Key.NumPad8 && e.Key != Key.NumPad9)
22             {
23                 e.Handled = true;
24             }
25 }
时间: 2024-11-05 07:14:01

WPF 限制Textbox输入的内容的相关文章

textbox填入后验证输入的合法或根据输入的内容失去焦点后立即得出其他信息

<x:SimpleForm ID="SimpleForm1" runat="server" EnableBackgroundColor="true" ShowBorder="False" BodyPadding="2px" ShowHeader="False"> <Items> <x:Panel ID="Panel3" ShowHeade

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

原文:wpf 限制textbox只能输入数字及特殊键 使用vs2015进行wpf设计时,发现限制输入数字时,Keydown事件无法检测到空格的输入,后经过查资料调试,发现PreviewKeyDown可以满足检测输入所有值合法性的要求,我的textbox输入框中只允许输入(大小键盘中)的数字0-9,以及删除回车,左右方向键,tab键,删除键,下面代码为限制 private void MinSpaceTextBox_PreviewKeyDown(object sender, KeyEventArgs

Xceed WPF表单输入控件Xceed Editors for WPF 免费下载及介绍

Xceed Editors for WPF 是一款包含12种功能强大的WPF编辑控件,用户输入控件,每个控件都具有多种风格主题,包含:日期选择控件.复选框.改进的TextBox.数字输入框.值范围输入框等. 具体功能: DatePicker/Calendar:日期选择控件 MaskedTextBox:为输入文本指定一种标记格式 CheckBox:提供了多种风格的复选框,不像传统的WPF复选框 AutoSelectTextBox:当控件具有焦点时内容被选择 ValueRangeTextBox:添加

WPF 自定义TextBox带水印控件,可设置圆角

一.简单设置水印TextBox控件,废话不多说看代码: <TextBox TextWrapping="Wrap" Margin="10" Height="69" Visibility="Visible"> <TextBox.Style> <Style TargetType="TextBox"> <Style.Triggers> <MultiTrigger

WPF 设置TextBox为空时,背景为文字提示。

<TextBox FontSize="17" Height="26" Margin="230,150,189,0" Name="txt_Account" VerticalAlignment="Top" Foreground="Indigo" TabIndex="0" BorderThickness="1"> <TextBox.Re

WPF拖动DataGrid滚动条时内容混乱的解决方法

WPF拖动DataGrid滚动条时内容混乱的解决方法 在WPF中,如果DataGrid里使用了模板列,当拖动滚动条时,往往会出现列表内容显示混乱的情况.解决方法就是在Binding的时候给UpdateSourceTrigger赋值. <Grid> <Grid.RowDefinitions> <RowDefinition Height="25"></RowDefinition> <RowDefinition></RowDe

C#中winform控制textbox输入只能为数字的方法

本文实例讲述了C#中winform控制textbox输入只能为数字的方法.分享给大家供大家参考.具体实现方法如下: 添加keyPress事件,控制键盘输入只能是自然数: 代码如下: /// <summary> /// 控制键盘输入只能是自然数 /// </summary> /// <param name="sender"></param> /// <param name="e"></param>

【WPF学习】第二十章 内容控件

原文:[WPF学习]第二十章 内容控件 内容控件(content control)是更特殊的控件类型,它们可包含并显示一块内容.从技术角度看,内容控件时可以包含单个嵌套元素的控件.与布局容器不同的是,内容控件只能包含一个子元素,而布局容器主要愿意可以包含任意多个牵头元素. 正如前面所介绍,所有WPF布局容器都继承自抽象类Panel,该类提供了对包含多个元素的支持.类似地,所有内容控件都继承自抽象类ContentControl.下图显示了ContentControl类的层次结构. 图 Conten

QWidget类中默认是忽略inputMethodEvent事件(要获取输入的内容就必须使用这个事件)

因为项目的需要以及主管的要求,准备将工程移植到Qt中,这样就可以比较容易的实现跨平台了.因为之前工程是在windows下开发的,第一个平台又是mobile所以除了底层框架之外其他的都是使用的windows的API以及编程模式,现在要移植到Qt中,第一个要面临的问题就是如何将windows的消息机制很好的转换为Qt中的处理机制.windows中是消息,Qt中是事件和信号.槽,其实原理都是一样的. 1.常用事件 因为所有和界面相关的类都是继承自QWidget类,所以QWidget类有的时间和方法,在