Проблема:
К тому времени, когда вы доберетесь до второго оператора if, вы изменили текст кнопки, следовательно, оба оператора выполняются ...
Вот быстрый тест:
if (button1.Text == "Pause")
{
label1.Text = label1.Text + " saw pause ";
button1.Text = "Resume";
}
if (button1.Text == "Resume")
{
label1.Text = label1.Text + " saw resume ";
button1.Text = "Pause";
}
возвращает: label1 возобновление паузы пилы.
Есть два способа исправить это:
Вы можете вставить 'return;' оператор внутри каждого оператора if:
private void button3_Click(object sender, EventArgs e)
{
if (button3.Text == "Pause")
{
CommandString = "pause mp3file";
mciSendString(CommandString, null, 0, 0);
Status = true;
button3.Text = "Resume";
return;
}
if (button3.Text == "Resume")
{
CommandString = "resume mp3file";
mciSendString(CommandString, null, 0, 0);
button3.Text = "Pause";
return;
}
}
Или, во-вторых, вы можете зафиксировать значение текста кнопки один раз:
private void button3_Click(object sender, EventArgs e)
{
String value = button3.Text;
if (value == "Pause")
{
CommandString = "pause mp3file";
mciSendString(CommandString, null, 0, 0);
Status = true;
button3.Text = "Resume";
}
if (value == "Resume")
{
CommandString = "resume mp3file";
mciSendString(CommandString, null, 0, 0);
buton3.Text = "Pause"; // As mentioned before, this is required too.
}
}
Надеюсь, это поможет.
Steve