C# 我想限制用户在运行时通过regex输入除(我的案例:“T+;1”)以外的文本

C# 我想限制用户在运行时通过regex输入除(我的案例:“T+;1”)以外的文本,c#,regex,wpf,C#,Regex,Wpf,要求是限制用户在字段中输入错误字符,而不是抛出任何错误或清除无效输入 我尝试了以下正则表达式: (^[T|t]{1}[-|+][1-9][0-9]$)|(^[T|t]{1}[-|+][1-9]$)|^[T|t]$ 基本上,我的代码中发生的是,我有一个文本框和组合框。如果用户输入T+范围(2,99)内的任何值,那么我必须禁用combobox。但它只适用于文本框的lostfocus,我希望在用户开始输入时同时调用验证逻辑和禁用逻辑 我有一个工作流活动,加载时显示T+1值。如果我在2和99之间添加值

要求是限制用户在字段中输入错误字符,而不是抛出任何错误或清除无效输入

我尝试了以下正则表达式:

(^[T|t]{1}[-|+][1-9][0-9]$)|(^[T|t]{1}[-|+][1-9]$)|^[T|t]$
基本上,我的代码中发生的是,我有一个文本框和组合框。如果用户输入T+范围(2,99)内的任何值,那么我必须禁用combobox。但它只适用于文本框的lostfocus,我希望在用户开始输入时同时调用验证逻辑和禁用逻辑

我有一个工作流活动,加载时显示T+1值。如果我在2和99之间添加值,那么它将禁用组合框。但当我清除文本框中的整个字段时,当我输入T时,它显示T,现在当我输入+符号时,整个文本字段被清除。这是因为我为它添加了逻辑,就好像textbox中的字符串无效(不是根据regex),然后清除该字段

我现在想要的是允许用户输入,但限制他重复输入。同时,应该计算textbox中的字符串并禁用combobox


请帮忙。需要认真的帮助

据我所知,你的问题其实很简单

“但它只适用于文本框的lostfocus,我希望 同时调用一次验证逻辑和禁用逻辑 用户开始输入“

只需使用PreviewtOutput事件


我故意忽略这样一个事实:这里有不止一个问题:p

请在正则表达式之外添加更多代码。很难理解为什么它不能仅对问题进行描述。是否要允许
T+
然后允许
1
99
之间的任何数字?wiktor我想要2到99之间的任何数字以及T+或T-