isNumber = int.TryParse(startBx.Text, out outputvalue);
isNumber = int.TryParse(endBx.Text, out outputvalue);
isNumber = int.TryParse(multiplyBx.Text, out outputvalue);
You overwrite the isNumber variable, so the last call counts. If you enter a number in the multiplyBx text box, it'll continue to parse the rest.
Why don't you just use int.TryParse to get the numbers?
int loopStart, loopEnd, multiplyBy;
if (!int.TryParse(startBx.Text, out loopStart) ||
!int.TryParse(endBx.Text, out loopEnd) ||
!int.TryParse(multiplyBx.Text, out multiplyBy))
{
MessageBox.Show("Please enter numbers in the text boxes.");
}
else
{
}