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;
相关推荐
R-G-B3 小时前
【06】C#入门到精通——C# 多个 .cs文件项目 同一项目下添加多个 .cs文件
开发语言·c#·c# 多个 .cs文件项目
懒人Ethan18 小时前
解决一个C# 在Framework 4.5反序列化的问题
java·前端·c#
mysolisoft20 小时前
Avalonia+ReactiveUI实现记录自动更新
c#·avalonia·reactiveui·sourcegenerator
心疼你的一切21 小时前
使用Unity引擎开发Rokid主机应用的模型交互操作
游戏·ui·unity·c#·游戏引擎·交互
韩立学长21 小时前
【开题答辩实录分享】以《C#大型超市商品上架调配管理系统的设计与实现》为例进行答辩实录分享
开发语言·c#
玩泥巴的1 天前
.NET驾驭Word之力:数据驱动文档 - 邮件合并与自定义数据填充完全指南
c#·word·.net·com互操作
心疼你的一切1 天前
使用Unity引擎开发Rokid主机应用的全面配置交互操作
学习·游戏·unity·c#·游戏引擎·交互
椒颜皮皮虾྅1 天前
【DeploySharp 】基于DeploySharp 的深度学习模型部署测试平台:安装和使用流程
人工智能·深度学习·开源·c#·openvino
kalvin_y_liu2 天前
【MES架构师与C#高级工程师(设备控制方向)两大职业路径的技术】
开发语言·职场和发展·c#·mes
椒颜皮皮虾2 天前
基于DeploySharp 的深度学习模型部署测试平台:支持YOLO全系列模型
c#