创建一个已包含验证功能的自定义TextBox

时间:2011-08-10 21:53:21

标签: c# wpf

我在我的程序中使用了几次这个代码用于我的TextBox:

    private void ResultTextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
    {
        e.Handled = !IsTextAllowed(e.Text);
    }

    private static bool IsTextAllowed(string text)
    {
        System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex("[^0-9.-]+"); //regex that matches disallowed text
        return !regex.IsMatch(text);
    }

我想创建一个自定义文本框,我不必再在每个用户控件中编写该代码。我不知道在WPF中创建自定义控件。

1 个答案:

答案 0 :(得分:3)

public class MyTextBox : TextBox
{
     System.Text.RegularExpressions.Regex regex = newSystem.Text.RegularExpressions.Regex("[^0-9.-]+"); 
     protected override void OnPreviewTextInput(TextCompositionEventArgs e)
     {
        e.Handled = !regex.IsMatch(e.Text);
     }
}