通过事件参数控制's文本
本文关键字:文本 控制 事件 参数 | 更新日期: 2023-09-27 18:15:59
为了在事件参数中获得TextBox
的Text
,我应该订阅什么事件?
我试过PreviewTextInput
,但如果输入字符串是,例如,"122"框的(见代码)文本是没有点,但eventArgs。文本为"。",输入字符串验证成功,然后输入文本框。文本是"122.."。我想做的是通过调用decimal.TryParse
来验证输入字符串是否为十进制。
private void OnPreviewTextInput(object sender, TextCompositionEventArgs eventArgs)
{
var box = sender as TextBox;
if (box == null) return;
eventArgs.Handled = !ValidationUtils.IsValid(box.Text + eventArgs.Text);
}
您可以尝试这样做:
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;
}
}