Reputation: 1
I want to make sure the user enters a number between 1 and 100. I need an error message to be displayed if they don't or enter a letter
private void button1_Click(object sender, EventArgs e)
{
guesses++;
label4.Text = guesses.ToString();
int guess = Convert.ToInt32(textBox1.Text);
if (guess > number)
{
MessageBox.Show("The value is lower than" + guess);
}
if (guess < number)
{
MessageBox.Show("The Value is bigger than" + guess);
}
if (guess == number)
{
MessageBox.Show("Well done!! The number was" + guess);
}
}
Upvotes: 0
Views: 407
Reputation: 61339
int guess;
bool numberEntered = int.TryParse(textBox1.Text, out guess);
if (!numberEntered)
MessageBox.Show("Invalid characters detected!");
else if (guess > 100)
MessageBox.Show("Number too big!");
else if (guess < 1)
MessageBox.Show("Number too small!");
TryParse will return false if it couldn't make a number out of the string.
Upvotes: 1
Reputation: 60493
Use Int32.TryParse
(which returns a boolean) instead of Convert.ToInt32
(which will throw an exception if the conversion fails.
int guess;
if (!Int32.TryParse(textBox1.Text, out guess)) {
//error message;
}
Upvotes: 1