在KeyPress事件中将handle设置为true后返回是多余的吗?

时间:2012-05-04 00:04:50

标签: c# winforms keypress

以下代码中是否需要“返回”:

if (((e.KeyChar == '1') && (String.IsNullOrWhiteSpace(textBoxPterodactylNum1.Text))) ||
    ((e.KeyChar == '2') && (String.IsNullOrWhiteSpace(textBoxPterodactylNum2.Text))) ||
    ((e.KeyChar == '3') && (String.IsNullOrWhiteSpace(textBoxPterodactylNum3.Text)))) {
    e.Handled = true;
    MessageBox.Show(String.Format(
        "There is no corresponding value for {0} in the pterodactyl TextBox above", e.KeyChar));
    return;
}
. . .
// other code follows if gauntlet above is passed through safely; don't want to continue if it didn't, though (if handled was set to true)

2 个答案:

答案 0 :(得分:2)

Handled属性不会停止在其轨道中执行事件,它只是告诉您已处理它的泡沫事件,并且不再需要处理其他任何事件。因此,e.Handled = true下面的代码可能会将其转换为错误状态,这将允许冒泡事件继续处理事件。

答案 1 :(得分:1)

这本身并不是多余的。您尚未显示后面的代码,但该代码可能会设置e.Handled = false