TextBox行为是否正确

时间:2011-04-21 08:51:17

标签: c# silverlight

为什么TextBox使用 e.Handled = true 以防止输入特定字符。
我们不是有更好的方法吗? 这不是一个错误的设计吗?
目前我希望不接收 KeyDown 事件,如果特定的 TextBox 是一个很好的方法吗?或者我必须检查是 OriginalSource 我想要的TextBox ......

编辑:

因为看起来我原来的问题有点令人困惑让我改革它 让我们假设我们有一个画布和文本框作为画布的孩子。 我注册了canvas的keyDown事件来做一些非常有趣的事情。
我不想在用户输入textBox时收到keydown事件。 有没有办法在不涉及e.OriginalSource的情况下做到这一点?

1 个答案:

答案 0 :(得分:5)

如果您想阻止任何输入,您可以(事实上, )也设置ReadOnly = true而不是收听KeyDown事件

如果您想选择性地防止击键,那么聆听KeyDown和设置e.Handled是唯一的方法。

但是,选择性地阻止击键是的可用性;不要这样做。而是使用文本框控件的Validating event来验证用户输入。