假设我有一个事件 KeyPress
订阅各种类。假设A类也订阅 KeyPress
在表格和B类也订阅 KeyPress
现在我希望这些类中只有一个应该处理Form在运行时触发的事件。那就是说A级首先处理,我试过用 e.Handled = true
但在这种情况下,这没有帮助。
如果A类已经处理过,我不希望B类处理从表单触发的事件,我目前有一个解决方法,涉及在A和B中设置一些公共标志,但这不是软件工程原理的好主意,我希望这些类尽可能彼此独立,但同时应该知道事件已经处理过,不需要再次处理。
那可能吗?
是的,这是可能的,需要检查 e.Handled == true
和.NET负责其余的事情:-)