当我处于OnPreviewTextInput事件中时,我可以访问文本之前更改和新字符。是否有一个属性可以告诉我如果输入未更改,全文将是什么样?
OnPreviewTextInput
我将输入限制为边界内的数字。所以我真的不在乎当前输入是什么。对我来说,更有趣的是,检查输入后的数字是否超出边界(=是非法的,无法处理),整个数字将看起来像什么。
实际上,如果用户在输入新数字之前用鼠标选择了一些文本,则建议的代码将失败。仅插入新数字是不够的,必须首先删除突出显示的文本。
输入9应该得到12945。但是Text.Insert(CaretIndex,e.Text)返回129345。正确的代码是:
Text.Remove(CaretIndex, SelectionLength).Insert(CaretIndex, e.Text)
或在C#8中
Text[..CaretIndex] + e.Text + Text[(CaretIndex + SelectionLength)..]