Если вы сбросите свой старт на ноль в событии смены чека, это должно сбросить таймер:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
{
start = 0;
label1.Text = string.Empty;
timer1.Enabled = true;
timer1.Start();
}
else
{
timer1.Enabled = false;
}
}
У меня есть похожий процесс, в котором я запускаю таймер при загрузке формы, затем, если у них есть форма, открытая в течение определенного периода времени, я даю им возможность оставить форму открытой. Если они это сделают, то я сбрасываю счетчик таймера до нуля, и процесс начинается заново.