KeyEventArgs.Handled与KeyEventArgs.SupressKeyPress

Gra*_*ush 8 .net c# vb.net winforms

使用之间有什么区别

e.Handled = true
Run Code Online (Sandbox Code Playgroud)

e.SuppressKeyPress = true
Run Code Online (Sandbox Code Playgroud)

我已经读过SuppressKeyPress调用e.Handled但其他情况呢?

Lar*_*ech 11

根据这篇博客:新的键盘API:KeyEventArgs.SuppressKeyPress:

问题是"Handled"不会处理 已在消息队列中构建的待处理WM_CHAR消息 - 因此设置Handled = true并不会阻止发生KeyPress.

为了不破坏当前有e.Handled = true的任何人,我们需要添加一个名为SuppressKeyChar的新属性.如果我们采取另一种方式,如果"处理"一个keydown突然开始实际工作,我们可能会打破那些意外将此设置为真的人.