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;
相关推荐
FuckPatience16 小时前
WPF 窗体唤醒,判断是否已存在,存在则弹出
wpf
UIU11416 小时前
补码运算与整数溢出(上
学习·c#·补码·补码运算
程序员清风17 小时前
从单体应用到微服务:后端系统拆分的基本方法
微服务·架构·wpf
曹牧18 小时前
C#:模态对话框
开发语言·c#
咕白m62518 小时前
C# 如何限制 PDF 复制、打印权限?
c#·.net
yume_sibai18 小时前
正则表达式完全指南(基础语法 + 实战应用 + 性能优化 + 最佳实践)
开发语言·正则表达式·c#
Nil20818 小时前
leetcode 79单词搜索
开发语言·c#
神仙别闹18 小时前
基于C#实现(WinForm)文件管理系统
java·开发语言·c#
reasonsummer19 小时前
【办公类-146-07】20260906《总园大班6个班级四大教育》(优化版:标题excle+复制AI文字+Python占位符录入)
人工智能·python·c#
玖玥拾19 小时前
Lua 基础语法(六)xLua Lua 调用 C# 交互
开发语言·unity·c#·lua