C#.NET记忆法意外行为

C#.NET记忆法意外行为,c#,behavior,mnemonics,C#,Behavior,Mnemonics,在我的windows应用程序中,有助于记忆的按钮很少。现在,如果我按下多个键,按钮点击的事件会被触发,因为我使用了助记键。 但是这种行为并不像预期的那样,因为第二个按钮事件处理程序是在第一个按钮事件处理程序完成执行之前执行的,而且我编写代码的方式是,在第一个按钮的事件处理程序中,我禁用了第二个按钮,第二个按钮事件处理程序仍在执行。这里的问题是由于助记符。请尽快建议我更好的方法来处理助记符。 提前感谢。如果您的逻辑与按钮相关联,请更改。让你的按钮仅仅操纵一个实现你逻辑的对象。然后,您可以在此对象中

在我的windows应用程序中,有助于记忆的按钮很少。现在,如果我按下多个键,按钮点击的事件会被触发,因为我使用了助记键。 但是这种行为并不像预期的那样,因为第二个按钮事件处理程序是在第一个按钮事件处理程序完成执行之前执行的,而且我编写代码的方式是,在第一个按钮的事件处理程序中,我禁用了第二个按钮,第二个按钮事件处理程序仍在执行。这里的问题是由于助记符。请尽快建议我更好的方法来处理助记符。
提前感谢。

如果您的逻辑与按钮相关联,请更改。让你的按钮仅仅操纵一个实现你逻辑的对象。然后,您可以在此对象中检查请求的操作是否被允许(即上一个操作是否已完成)


或者,您可以在运行时禁用按钮,然后在.finished.时重新启用。

请给我们一些代码,这样我们就不必胡乱猜测了。您好,如果可能的话,您能为我推荐一种更好的方法或任何COM组件来处理助记符吗?我发现了一个,即IKeyBoardinputsink接口,但它存在于.NET framewo中rk 3.0,我使用的是.netframework 2.0,如果可能的话,请建议我任何解决方法或任何参考资料,为我提供一个接口来处理此问题。没有.NET的助记符实现本身就没有问题,问题几乎肯定在您的应用程序逻辑中。您好,我同时按下了键。因此,出现了问题正在发生,第二个按钮的助记符没有意识到它不应该执行事件处理程序,因为我之前已经禁用了它。嗨,我无法更改代码。但是如果可能的话,你能给我建议一个更好的方法或任何COM组件来处理助记符吗?我发现了一个,即IKeyBoardinputsink接口,但它存在于.NET fr中amework 3.0,我使用的是.netframework 2.0,如果可能,请建议我任何解决方法或任何参考,以提供一个接口来处理此问题。IKeyBoardinputsink接口是System.Windows.Interop命名空间中存在的接口…但在.NET framework 2.0中,此参考不存在。您的软件中存在错误,正在应用some-COM接口不会神奇地解决这个问题。