所以我在Visual Studio C#上使用Windows Forms App。我正在开发游戏。为此,我给出了“说明”表格。我想以这种形式给出指示。游戏有4种模式,因此我想针对每种模式分别给出说明。我已经使用groupBox为每种模式提供了说明。这意味着我在groupBox中添加了textBox进行说明。现在对于4种模式,我正在使用4个groupBox。 现在的问题是,如何通过单击相同的“ NEXT”按钮来打开groupBox2然后groupBox3然后groupBox4?就像表单加载时一样,groupBox1会加载第一种模式。现在,当用户单击“下一步”按钮时,groupBox1变为不可见,而groupBox2变为可见,这是第二种模式。然后,当用户单击相同的“下一步”按钮时,groupBox2变为不可见,而groupBox 3变为可见。 以同样的方式使用“ PREVIOUS”按钮,该按钮将使groupBox3不可见,而groupBox2可见。
答案 0 :(得分:1)
有两种合理的方法。
一种方法是在类数据中保留变量int step
(或类似变量),然后在按钮的统一点击处理程序内执行switch (step)
。
另一种方法是使用单独的点击处理程序,并在第一个点击处理程序中执行NextButton.Click -= Step1NextClicked; NextButton.Click += Step2NextClicked;
,其他方法也类似。
第二种方法的变体是按钮单击处理程序不具有任何逻辑,而只需调用一个Action,该操作在每个阶段都指向一个单独的处理程序函数。然后,您可以在更改阶段时通过一次分配来更新操作,而不必删除旧的处理程序并添加新的处理程序。
另一种方法是不仅交换组框,而且交换同时包含组框和按钮的无边界面板。然后,实际上您有多个“下一步”按钮,它们在完全相同的屏幕位置一次显示一个。
我个人会使用第一个选项,因为它非常有效。如果我有少数几种不同的行为,我可能会使用“动作”方法。