OnPreviewTextInput事件:*结果*看起来如何?

问题描述 投票:2回答:1

当我处于OnPreviewTextInput事件中时,我可以访问文本之前更改和新字符。是否有一个属性可以告诉我如果输入未更改,全文将是什么样?

我将输入限制为边界内的数字。所以我真的不在乎当前输入是什么。对我来说,更有趣的是,检查输入后的数字是否超出边界(=是非法的,无法处理),整个数字将看起来像什么。

c# wpf events
1个回答
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)..]
© www.soinside.com 2019 - 2024. All rights reserved.