事件触发多次,但代码应该只执行一次



我有一个事件,触发6次,我想我的弹出只出现一次,而不是6次。我试图使用一个标志,但我不能从同一事件重置它。我试图比较值,但没有工作,因为我有相同的结果所有的时间。有什么想法吗?

我假设这是在一个winforms应用程序是单线程的:你可以使用一个静态布尔变量'EventReceived',你设置为true在显示弹出窗口后的第一个事件;只要'EventReceived'为真就不要再显示弹出窗口;并设置'EventReceived'回false,如果弹出窗口被关闭。

当然,问题是,为什么要多次接收事件。也许你可以避免这种情况,或者用不同的方式处理——但是你必须给我们更多的信息。

尝试使用静态标志变量。然后,您可以从同一事件中重置标志。在应用程序第一次执行onEvent代码段时,您需要标记标志。在inEvent代码段中,你可以包括你的操作,在到达那部分代码之前,你必须检查你的标志。(通过if从句)。如果你需要在6次后重置你的标志,你可以维持一个计数器变量,通过计数器值你可以计算出你所处的发射周期。当计数器达到6时,你可以重置你的标志变量

相关内容

  • 没有找到相关文章

最新更新