TextBox行为是否正确

Son*_*sar 1 c# silverlight

为什么TextBox使用e.Handled = true以防止输入特定字符.
我们不是有更好的方法吗?
这不是一个错误的设计吗?

目前我想不接收KeyDown事件,如果特定的TextBox是焦点是有一个很好的方法来做到这一点?或者我将要检查原始源我想要的TextBox ...

编辑:

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

Kon*_*lph 5

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

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

但是,有选择地防止击键对于可用性是不利的; 不要这样做.而是使用文本框控件的Validating事件来验证用户输入.