创建一个双功能按钮

Ger*_*mon 0 c#

我正在尝试做一个Crono.我试图使用以下代码创建一个双功能按钮(开始/停止):

private void buttonStartStop_Click(object sender, EventArgs e)
{
    if (buttonStartStop.Text=="Start")
    {
        timerCrono.Enabled = true;
        buttonStartStop.Text = "Stop";
        buttonResetLap.Text = "Lap";
    }
    if (buttonStartStop.Text == "Stop")
    {
        timerCrono.Enabled = false;
        textBoxLaps.Text += "(Lap " + laps + ")" + "  " + min + ":" + sec + "," + decsec + "\r\n";
        laps++;
        buttonStartStop.Text = "Start";
        buttonResetLap.Text = "Reset";
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我点击它时它似乎做了2个功能.

那么我能做些什么才能在一个按钮中完成2个独立的功能呢?

15e*_*153 5

当文本为"开始"时,执行第一个if块.

第一个if块将文本设置为"Stop".

然后你到达第二个if块.文字是"停止"吗?确实是.你只需将它设置为那个.所以第二个if块执行.

使用else,如下所示.当你这样做时,它只会if在第一个if条件为false时尝试第二个.所以它只做一个另一个,或者两个都没有,但从来没有.

private void buttonStartStop_Click(object sender, EventArgs e)
{
    if (buttonStartStop.Text=="Start")
    {
        timerCrono.Enabled = true;
        buttonStartStop.Text = "Stop";
        buttonResetLap.Text = "Lap";
    }
    else if (buttonStartStop.Text == "Stop")
    {
        timerCrono.Enabled = false;
        textBoxLaps.Text += "(Lap " + laps + ")" + "  " + min + ":" + sec + "," + decsec + "\r\n";
        laps++;
        buttonStartStop.Text = "Start";
        buttonResetLap.Text = "Reset";
    }
}
Run Code Online (Sandbox Code Playgroud)

TheLethalCoder指出你也可以使用一个switch声明(并且有一个这样的名字,我建议你认真对待他):

switch (buttonStartStop.Text) {
    case "Start":
        timerCrono.Enabled = true;
        buttonStartStop.Text = "Stop";
        buttonResetLap.Text = "Lap";
        break;

    case "Stop":
        timerCrono.Enabled = false;
        textBoxLaps.Text += "(Lap " + laps + ")" + "  " + min + ":" + sec + "," + decsec + "\r\n";
        laps++;
        buttonStartStop.Text = "Start";
        buttonResetLap.Text = "Reset";
        break;
}
Run Code Online (Sandbox Code Playgroud)

处理这些事情的方法是在函数开始处设置断点,运行程序,并使用F10键逐步执行每一行.在每一行,仔细检查代码与之交互的所有变量.你会看到buttonStartStop.Text改变"Stop",然后你会看到第二个if语句评估buttonStartStop.Text,你会得到启发.