为了在事件args中获取TextBox
的{{1}},我应该订阅哪些事件?
我尝试了Text
,但是如果输入字符串是“122”。框的(见代码)文本没有点,但eventArgs.Text是“。”并且输入字符串成功验证,TextBox.Text为“122 ..”。我想要做的是通过调用PreviewTextInput
验证输入字符串是否为十进制。
decimal.TryParse
答案 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;
}
}