#632 – 使用PreviewTextInput事件阻止用户输入(Block Input Using PreviewTextInput)

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

你可以使用控件的PreviewTextInput 事件来阻止控件接收某些输入的字符。

要防止某个特定的字符输入到控件,你只要简单的设置TextCompositionEventArgs 类型参数的Handled 属性为true就可以。它将中断控件接收字符输入事件的路由。

在XAML代码中注册事件:

<TextBox Text="" HorizontalAlignment="Center" Width="150"
     PreviewTextInput="TextBox_PreviewTextInput" />

CS文件代码中实现事件处理函数:

private void TextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
    {
        // No e's allowed
        if ((e.Text == "e") || (e.Text == "E"))
            e.Handled = true;
    }

在代码中,我们组织了‘e’和‘E’这两个字符的输入,在TextBox 中输入这两个字符将不会被接收。

要注意有些按键按下是不会触发PreviewTextInput 事件的,它们是:

 -空格(Spacebar)

 -回退(Backspace)

 -Home/End/Delete/Insert 键

 -方向箭头

 -Ctl组合键, 比如 Ctrl+V

原文地址:https://wpf.2000things.com/2012/08/24/632-block-input-using-previewtextinput/



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值