OnPreviewTextInput事件:*会*结果如何?

时间:2013-06-01 16:31:37

标签: c# wpf events

当我在OnPreviewTextInput事件中时,我可以在更改和新角色之前访问文本。是否有一个属性可以告诉我如果输入没有改变,全文会是什么样子?

我限制输入到边界内的数字。所以我并不关心当前的输入是什么。对我来说更有意思的是整个数字看起来像检查输入后的数字是否违反边界(=非法是无法处理)。

1 个答案:

答案 0 :(得分:0)

实际上,如果用户在输入新数字之前用鼠标选择了一些文本,则建议的代码将失败。仅插入新数字是不够的,必须首先删除突出显示的文本。

enter image description here

输入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)..]