Overloading interface buttons, what are the best practices?
- by XMLforDummies
Imagine you'll have always a button labeled "Continue" in the same position in your app's GUI.
Would you rather make a single button instance that takes different actions depending on the current state?
private State currentState = State.Step1;
private ContinueButton_Click()
{
switch(currentState)
{
case State.Step1:
DoThis();
currentState = State.Step2;
break;
case State.Step2:
DoThat();
break;
}
}
Or would you rather have something like this?
public Form()
{
this.ContinueStep2Button.Visible = false;
}
private ContinueStep1Button_Click()
{
DoThis();
this.ContinueStep1Button.Visible = false;
this.ContinueStep2Button.Visible = true;
}
private ContinueStep2Button_Click()
{
DoThat();
}