WPF使用PreviewTextInput事件限制用户输入

说明:

本文介绍如何通过WPF中的PreviewTextInput事件阻止特定字符输入到控件中,并提供了具体的XAML和C#代码示例。此外,还列举了一些不会触发此事件的特殊按键。

情况1:限制输入的内容为0-9的数字

xml 复制代码
<TextBox x:Name="限制输入内容为0-9"  Text="0"  PreviewTextInput="NumberTextBox_PreviewTextInput"/>
csharp 复制代码
        private void NumberTextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
        {
            // 正则表达式,用于检查是否是数字
            e.Handled = !Regex.IsMatch(e.Text, "^[0-9]+$");
        }

情况2:阻止接收某些字符

xml 复制代码
<TextBox x:Name="阻止接收A和a字符"  Text="A"  PreviewTextInput="NumberTextBox_PreviewTextInput"/>
csharp 复制代码
private void TextBox NumberTextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
	if((e.Text =="a")||(e.Text =="A"))
	{
		e.Handled = true;
	}
}

PS: 些按键按下是不会触发PreviewTextInput 事件的:

  1. 空格(Spacebar);
  2. 回退(Backspace);
  3. Home/End/Delete/lnsert 键;
  4. 方向箭头;
  5. CtI组合键,比如 Ctrl+V;
相关推荐
·心猿意码·8 小时前
WPF中TemplatePart机制详解
wpf
清风与日月11 小时前
c# 集成激光雷达(以思岚A1为例)
开发语言·c#
无极小卒11 小时前
如何在三维空间中生成任意方向的矩形内部点位坐标
开发语言·算法·c#
the白勺13 小时前
RabbitMQ-基础-总结
开发语言·c#
专注VB编程开发20年14 小时前
C#VB.NET中实现可靠的文件监控(新建、删除、改名、内容修改等事件的准确捕获)
spring·c#·.net·文件监控
yi碗汤园16 小时前
【一文了解】C#反射
开发语言·unity·c#
T.Ree.18 小时前
汇编_读写内存
开发语言·汇编·c#
czhc114007566319 小时前
C#1114 枚举
开发语言·c#
曹牧20 小时前
C#中,GetValueOrDefault方法
c#
SunnyDays10111 天前
使用 C# 实现 Excel 与 DataTable 相互转换
c#·excel转datatable·datatable转excel