首页 > 解决方案 > 如何在单击一次按钮时应用多个事件

问题描述

所以我在visual studio c#上使用Windows Forms App。我正在开发一个游戏。为此,我给出了一份“说明”表格。我想以那种形式给出指示。游戏有 4 种模式,所以对于每种模式,我想给出单独的说明。我使用 groupBox 为每种模式提供说明。这意味着在 groupBox 中我添加了 textBox 以进行说明。现在对于 4 种模式,我使用 4 个 groupBox。现在的问题是如何通过单击相同的“NEXT”按钮打开 groupBox2 然后 groupBox3 然后 groupBox4 ?就像当表单加载 groupBox1 加载时一样,这是第一种模式。现在,当用户单击 NEXT 按钮时,groupBox1 变得不可见,而 groupBox2 变为可见,这是第二种模式。然后,当用户再次单击相同的 Next 按钮时,groupBox2 变得不可见,而 groupBox 3 变得可见。

标签: c#

解决方案


对此有几种合理的方法。

一种方法是在类数据中保留一个变量int step(或类似变量),并在按钮的统一点击处理程序中 do switch (step)

另一种方法是拥有单独的点击处理程序,并在第一个点击处理程序中执行,NextButton.Click -= Step1NextClicked; NextButton.Click += Step2NextClicked;并且在其他点击处理程序中类似。

第二种方法的一个变体是按钮单击处理程序没有任何自己的逻辑,而只是调用一个 Action,它在每个阶段都指向一个单独的处理程序函数。然后,您可以在更改阶段时在单个分配中更新 Action,而不必删除旧处理程序并添加新处理程序。

另一种方法是不仅交换组框,还交换一个同时包含组框和按钮的无边框面板。然后,您实际上有多个 Next 按钮,它们在完全相同的屏幕位置一次显示一个。

我个人会使用第一个选项,因为它非常有效。如果我有多个不同的行为,我可能会使用 Action 方法。


推荐阅读