通过事件参数获取控制文本的事件

时间:2013-05-29 15:24:05

标签: c# wpf validation textbox decimal

为了在事件args中获取TextBox的{​​{1}},我应该订阅哪些事件?

我尝试了Text,但是如果输入字符串是“122”。框的(见代码)文本没有点,但eventArgs.Text是“。”并且输入字符串成功验证,TextBox.Text为“122 ..”。我想要做的是通过调用PreviewTextInput验证输入字符串是否为十进制。

decimal.TryParse

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

private void OnPreviewTextInput(object sender, TextCompositionEventArgs e)
{
    var textBox = (TextBox)sender;
    var text = textBox.Text.Insert(textBox.CaretIndex, e.Text);
    decimal number;
    if (!decimal.TryParse(text, NumberStyles.Float, CultureInfo.InvariantCulture, out number))
    {
        e.Handled = true;
    }
}